
     i                     j   d dl mZ d dlmZmZmZmZmZmZm	Z	m
Z
mZmZ ddlmZmZmZmZmZmZ ddlmZ ddlmZ ddlmZ eege
eef         f         Zeeef         Z G d d	e          Zeeee	e         d
f         Z G d dee                   Z h dZ!dZ" G d d          Z#dee          de fdZ$d
S )    )Enum)
CallablecastDictGenericListOptionalSequenceTupleUnionAny   )InnerConverterParserParserGetter
SerializerSerializerGetterT)	NameStyle)NameMapping)prepare_validatorsc                       e Zd ZdZdZdZdS )UnknownskipforbidincludeN)__name__
__module____qualname__SKIPFORBIDSTORE     `/root/.openclaw/workspace/.venvs/songid/lib/python3.11/site-packages/dataclass_factory/schema.pyr   r      s        DFEEEr$   r   Nc            (           e Zd ZU dZeee         ee         f         e	d<   eee         ee         f         e	d<   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddeee                  deee                  de
dee         d	ee         d
ee         dee         deee                  deee                  deee                  deee                  dee         deee                  deee                  dee         dee         dedee         dee         f&dZdS )Schemaz
    Class describing data conversion rules.
    See documentation for more details.

    In case of inheriting you can set any setting as a class field.
    Callable settings can be just methods.
    pre_validatorspost_validatorsNonlyexcludename_mappingonly_mapped
name_styletrim_trailing_underscoreskip_internal
serializerget_serializerparser
get_parser	pre_parse
post_parsepre_serializepost_serializeomit_defaultunknownnamedescriptionc                    t          |           \  | _        | _        |t          | d          s|| _        |t          | d          s|| _        |t          | d          s|| _        |t          | d          s|| _        |t          | d          s|| _        |t          | d          s|| _	        |t          | d          s|| _
        |t          | d          s|| _        |	t          | d	          s|	| _        |
t          | d
          s|
| _        |t          | d          s|| _        |t          | d          s|| _        |t          | d          s|| _        |t          | d          s|| _        |t          | d          s|| _        |t          | d          s|| _        |t          | d          s|| _        |t          | d          s|| _        |t          | d          s	|| _        d S d S )Nr*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   )r   r(   r)   hasattrr*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   )selfr*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   s                       r%   __init__zSchema.__init__!   sK   6 5Gt4L4L1T174#8#8DIgdI&>&>"DL#74+H+H# ,D"'$*F*F"*D!|)D)D!(DO#/wtE_7`7`/,DD)$GD/,J,J$!.D!|)D)D!(DO%WT;K-L-L%"0DWT8%<%< DK!|)D)D!(DO k(B(B &DN!|)D)D!(DO$GD/,J,J$!.D%WT;K-L-L%"0D#74+H+H# ,DgdI&>&>"DL74#8#8DI"'$*F*F"*D #"r$   )NNNNNNNNNNNNNNNNNNN)r   r   r   __doc__r   r	   strr   r   __annotations__r   boolr   r   r   r   r   r   r   RuleForUnknownr@   r#   r$   r%   r'   r'      s          #V45555(3-f56666 %)'+$(&**.37(,.28<&*04(,2659-1'+"&"%)3G+ G+tCy!G+ $s)$G+ "	G+
 d^G+ Y'G+ #+4.G+  ~G+ Z]+G+ !!1!!45G+ #G+ \!_-G+" H%#G+$ ^A./%G+&  q 12'G+( !*)G+, tn-G+.  /G+0 sm1G+2 c]3G+ G+ G+ G+ G+ G+r$   r'   >   r;   r*   r3   r+   r:   r5   r4   r.   r6   r1   r<   r-   r,   r9   r7   r0   r2   r8   r(   r)   r/   _schemas_patchc                   @     e Zd ZeZdefdZd Z fdZd Z	d Z
 xZS )SchemaProxyschemasc                 "    || _         i | _        d S NrF   )r?   rK   s     r%   r@   zSchemaProxy.__init__   s    &(r$   c                     	 | j         |         S # t          $ r Y nw xY w| j        D ]}t          ||d           }||c S |t          v rd S t          d| d          )NzField `z` is not defined for Schema)rH   KeyErrorrG   getattrSCHEMA_FIELDSAttributeError)r?   itemschemaress       r%   __getattr__zSchemaProxy.__getattr__   s    	;t$$ 	 	 	D	 m 	 	F&$--C


  =  4HtHHHIIIs    
c                 r    |t           v r"t                                          ||          S || j        |<   d S rM   )_SP_OWN_ATTRSsuper__setattr__rH   )r?   keyvalue	__class__s      r%   rZ   zSchemaProxy.__setattr__   s:    -77&&sE222 Cr$   c                     | j         | j        fS rM   rF   )r?   s    r%   __getstate__zSchemaProxy.__getstate__   s    }dk))r$   c                 $    |\  | _         | _        d S rM   rF   )r?   states     r%   __setstate__zSchemaProxy.__setstate__   s    %*"t{{{r$   )r   r   r   rX   	__slots__r'   r@   rV   rZ   r_   rb   __classcell__)r]   s   @r%   rJ   rJ      s        I) ) ) ) )J J J ! ! ! ! !
* * *+ + + + + + +r$   rJ   rK   returnc                  N    t          t          t          d | D                        S )Nc                     g | ]}||S r#   r#   ).0ss     r%   
<listcomp>z merge_schema.<locals>.<listcomp>   s    %>%>%>AA%>a%>%>%>r$   )r   r'   rJ   )rK   s    r%   merge_schemark      s&    %>%>%>%>%>?@@@r$   )%enumr   typingr   r   r   r   r   r	   r
   r   r   r   commonr   r   r   r   r   r   namingr   
path_utilsr   
validatorsr   rB   rD   FieldMapperSimpleFieldMappingr   rE   r'   rQ   rX   rJ   rk   r#   r$   r%   <module>rt      s         ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y       # # # # # # * * * * * *ueCI../#s(^     d    wXc]D89R+ R+ R+ R+ R+WQZ R+ R+ R+j  0 ' +  +  +  +  +  +  +  +FA8F+ A A A A A A Ar$   