
    tAc.                        d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm	Z
 d dlmZ d dlmZ d dlmZmZmZmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZmZ d dlmZ d dlmZ d dlmZm Z  d dl!m"Z"m#Z#m$Z$ d dl!m	Z% d dl!m&Z& ej'        d d         Z'e'dd         dk    Z(e'dd         dk    Z)e'dd         dk    Z*e'dd         dk    Z+e(rd Z,d Z-d dl.m/Z/ n
d dlm/Z/m,Z,m-Z- d e0e           vrd dl1m2Z2 ne2Z2d Z3d Z4d Z	d ee#         fd!Z5d"ed e6fd#Z7d"ed e6fd$Z8eZ9eZ:e(se)reZeZeZeZeZeZeZeZ;eZ<d d%l=m>Z? d d&lm>Z>m@Z@mAZA d' ZBd( ZCd) ZDd*ed eeE         fd+ZFd"ed e6fd,ZGd- ZHd. ZId/ ZJejK        ejK        ejK        ejK        ejK        ejK        dhZLd0 ZMd1 ZNe)rd d2lmOZO d e6fd3ZPnd e6fd4ZPd5 ZQd6 ZRnd d%l=m>Z> d d	lmZS d d
lmZT d dlmZU d dlmZ d dlmZV d dlmZ d d7lWmXZX d d8lmYZY d d%lm>ZZ d d9lm@Z@m[Z[mAZAm\Z\m]Z] 	 d d:lm^Z^ d e6fd;ZPn# e_$ r	 d e6fd<ZPY nw xY weZeZeZeVZeUZeTZeSZe`Z;eaZ<d e6fd=ZBd> ZCe+rd? ZDd*ed eeE         fd@ZFndA ZDd*ed eeE         fdBZFd"ed e6fdCZGdD ZHdE ZIdF ZMdG ZJdH ZNdI ZQdJ ZRdK ZbdS )L    N)
MutableSet)Set)MISSING)fields)is_dataclass)AbstractSet)AnyDict	FrozenSetList)Mapping)MutableMapping)MutableSequence)NewTypeOptional)Sequence)Tupleget_type_hints)NOTHING	AttributeFactory)resolve_types      )r      )r      )r   	   )r   
   c                     | j         S N)__args__cls    0/usr/lib/python3/dist-packages/cattrs/_compat.pyget_argsr%      s
    {    c                 $    t          | dd           S N
__origin__)getattrr"   s    r$   
get_originr+   "   s    r<...r&   )Protocol)r,   r%   r+   ExceptionGroup)r-   c                 B    t          | d          pt          | d          S )N__attrs_attrs____dataclass_fields__)hasattrclss    r$   hasr4   0   s#    3)**Rgc;Q.R.RRr&   c                 X    t          |           pt          t          |                     S )zATest whether the class if a normal or generic attrs or dataclass.)r4   r+   r2   s    r$   has_with_genericr6   4   s!    s88+s:c??+++r&   c                     	 | j         S # t          $ r0 	 t          |           cY S # t          $ r t          d          w xY ww xY w)Nz Not an attrs or dataclass class.)r/   AttributeErrordataclass_fields	Exceptiontypes    r$   r   r   9   sx    @## @ @ @	@#D))))) 	@ 	@ 	@>???	@@s   	 
A%A?Areturnc                 B   t          |           rHt          |           }t          d |D                       rt          |           ni fd|D             S t	          |           }t          d |D                       rt          |            t	          |           }|S )z@Return the attrs format of `fields()` for attrs and dataclasses.c              3   J   K   | ]}t          |j        t                    V  d S r    
isinstancer<   str.0as     r$   	<genexpr>z!adapted_fields.<locals>.<genexpr>G   s.      661z!&#&&666666r&   c                    g | ]~}t          |j        |j        t          ur|j        n(|j        t          urt          |j                  nt          d dd d|j        d                    |j        |j	                  	  	        S )NTr;   )
r   namedefaultr   default_factoryr   r   initgetr<   )rD   attr
type_hintss     r$   
<listcomp>z"adapted_fields.<locals>.<listcomp>M   s     
 
 
$ # 	<w..  +7:: D0111 	^^DIty99  
 
 
r&   c              3   J   K   | ]}t          |j        t                    V  d S r    r@   rC   s     r$   rF   z!adapted_fields.<locals>.<genexpr>c   s.      881z!&#&&888888r&   )r   r9   anyr   attrs_fieldsr   )r#   attrsattribsrN   s      @r$   adapted_fieldsrU   C   s    B " $$6666666 	 (++JJJ
 
 
 
$ %
 
 
 	
* r""8888888 	'""2&&Gr&   r<   c                 H    t          | dd           }|t          u od| j        vS )Nr)   .)r*   tupler!   r<   origins     r$   is_hetero_tuplerZ   j   s)    T<..FU?7s$-77r&   c                 N    t          | t                    ot          | dd          S )N_is_protocolF)
issubclassr,   r*   r;   s    r$   is_protocolr^   o   s#    dH%%N'$*N*NNr&   )Counter)r_   Union_GenericAliasc                     dS NF _s    r$   is_annotatedrg      s    ur&   c                 r    | t           t          fv p'| j        t          u ot	          | j        t                     S r    )r   rW   	__class__ra   r]   r)   r;   s    r$   is_tuplerj      s3    u~% 
Nm+R
4?E0R0R	
r&   c                 Z    | t           u p"t          | t                    o| j        t           u S r    )r`   rA   ra   r)   objs    r$   is_union_typern      s*    5LVJsM::Vs~QV?V	
r&   typc                 l    t          | dd           }| t          | dd          dk    r| j        dv r|S d S N__supertype____qualname__ zNewType.<locals>.new_type)typingtyping_extensionsr*   
__module__ro   	supertypes     r$   get_newtype_baser{      sJ    C$77	!^R004OOO"AAAtr&   c                    | t           t          t          t          fv pf| j        t
          u r5| j        t          t          t          fvot          | j        t                    p#| j        t          t          fv o| j
        d         du S )N   .)r   listr   rW   ri   ra   r)   r`   r]   TypingSequencer!   r;   s    r$   is_sequencer      sy    dE511 
Nm+ ue'<< @t??O
 E5>1MdmA6F#6M	
r&   c                 d    | t           u p'| j        t          u ot          | j        t
                    S r    )setri   ra   r]   r)   r   r;   s    r$   is_mutable_setr      s.    s{ 
Nm+W
4?J0W0W	
r&   c                 d    | t           u p'| j        t          u ot          | j        t
                    S r    )	frozensetri   ra   r]   r)   r   r;   s    r$   is_frozensetr      s/    y  
Nm+V
4?I0V0V	
r&   c                 r    | t           t          fv p'| j        t          u ot	          | j        t                     S r    )TypingMappingdictri   ra   r]   r)   r;   s    r$   
is_mappingr      s7    t,, 
Nm+ ;4?M::	
r&   c                 2    t          | dd           t          v S )Nr!   )r*   bare_generic_argsr;   s    r$   is_barer      s    tZ..2CCCr&   c                 R    | t           t          fv pt          | dd           t          u S r(   )r_   
ColCounterr*   r;   s    r$   
is_counterr      s-    Wj)) ?t\400J>	
r&   )Literalc                 :    | j         t          u o| j        t          u S r    )ri   ra   r)   r   r;   s    r$   
is_literalr      s    >]2Qt'7QQr&   c                     dS rc   rd   re   s    r$   r   r          5r&   c                 ,    t          | t                    S r    )rA   ra   rl   s    r$   
is_genericr      s    #}---r&   c                 ,    |                      |          S z#Replace a generic type's arguments.)	copy_withr<   argss     r$   r   r      s    ~~d###r&   )GenericAlias)	Annotated)r`   _AnnotatedAliasra   _SpecialGenericAlias_UnionGenericAlias)_LiteralGenericAliasc                     | j         t          u S r    )ri   r   r;   s    r$   r   r      s    >%999r&   c                     dS rc   rd   re   s    r$   r   r      r   r&   c                 2    t          | dd           t          u S )Nri   )r*   r   r;   s    r$   rg   rg     s    t[$//?BBr&   c                     | t           t          fv p?| j        t          u ot	          | j        t                     pt          | dd           t          u S r(   )r   rW   ri   ra   r]   r)   r*   r;   s    r$   rj   rj     sM    UEN" <-/VJtPU4V4V<lD11U:	
r&   c                     ddl m} | t          u p2t          | t                    o| j        t          u pt          | |          S )Nr   )	UnionType)typesr   r`   rA   r   r)   )rm   r   s     r$   rn   rn     sS    '''''' u .s$677SCNe<S.c9--r&   c                 P    | t           u st          | t                     r| j        S d S r    )r   rA   rr   )ro   s    r$   r{   r{     s'    g~~C!9!9~((4r&   c                 Z    | t           u p"t          | t                    o| j        t           u S r    )r`   rA   r   r)   rl   s    r$   rn   rn   !  s0    u ,c#566 ,Ne+r&   c                 l    t          | dd           }| t          | dd          dk    r| j        dv r|S d S rq   rw   ry   s     r$   r{   r{   (  sJ    _d;;I%C448SSSN&EEE  4r&   c                 d   t          | dd           }| t          t          t          t          t
          t          t          fv pq| j        t          u o5|t          urt          |t                    p|t          u o| j        d         du p-|t          t
          t          fv p|t          u o| j        d         du S )Nr)   r}   .)r*   r   r~   r   TypingMutableSequenceAbcMutableSequencer   rW   ri   ra   r]   r!   AbcSequencerX   s     r$   r   r   2  s    |T22%"	 = -/ 5( ;"6>::0 0a(C/!=& 4!3[AA'=( %;DM!$4$;+	
r&   c                     | t           t          t          fv pL| j        t          u ot          | j        t                    p$t          | dd           t          t          t          fv S r(   )
	TypingSetTypingMutableSetr   ri   ra   r]   r)   r*   AbcMutableSetAbcSetr;   s    r$   r   r   L  s`    Y 0#66 S-/ Bt0@AAS
 lD11c=&5QQ	
r&   c                     | t           t          fv p?| j        t          u ot	          | j        t                     pt          | dd           t          u S r(   )r   r   ri   ra   r]   r)   r*   r;   s    r$   r   r   V  sT    Y	** @-/ ;t	::@
 lD11Y>	
r&   c                 p    t          | t                    p!t          | d           ot          | d           S )Nr)   r!   )rA   r   r1   r;   s    r$   r   r   `  s<    $ 455 
l+++MGD*4M4M0M	
r&   c                 
   | t           t          t          t          t          fv pa| j        t          u ot          | j        t                     p9t          | dd           t          t          t          fv pt          | t                    S r(   )r   r
   TypingMutableMappingr   AbcMutableMappingri   ra   r]   r)   r*   
AbcMappingr;   s    r$   r   r   e  sy    ]D*>FWXX 	&-/ ?t>>	& lD11+Z89	& $%%	
r&   c                 R    | t           t          fv pt          | dd           t           u S r(   )r_   TypingCounterr*   r;   s    r$   r   r   s  s-    Wm,, <t\400G;	
r&   c                 V    t          | t                    pt          | t                    S r    )rA   ra   r   rl   s    r$   r   r   y  s!    #}--NC1N1NNr&   c                 T    t          |           rt          |         S | j        |         S r   )rg   r   r)   r   s     r$   r   r   |  s)     	#T?"t$$r&   c                 H    t          |           ot          | j                  S r    )r   r4   r)   r;   s    r$   is_generic_attrsr     s    d4DO 4 44r&   )cbuiltinssyscollections.abcr   r   r   r   dataclassesr   r   r9   r   ru   r   TypingAbstractSetr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rM   r   r   r   rR   r   version_infois_py37is_py38is_py39_plusis_py310_plusr%   r+   rv   r,   direxceptiongroupr-   r4   r6   rU   boolrZ   r^   OriginAbstractSetOriginMutableSetFrozenSetSubscriptableTupleSubscriptablecollectionsr_   r   r`   ra   rg   rj   rn   r<   r{   r   r   r   r   r!   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ImportErrorr   rW   r   rd   r&   r$   <module>r      s    



 7 7 7 7 7 7 ) ) ) ) ) )       2 2 2 2 2 2 $ $ $ $ $ $ 3 3 3 3 3 3 - - - - - - - - - - - - + + + + + + 9 9 9 9 9 9 ; ; ; ; ; ; 1 1 1 1 1 1 $ $ $ $ $ $ $ $ - - - - - - # # # # # # ( ( ( ( ( ( ( ( , , , , , , , , , , ' ' ' ' ' '      !$
rr
f
$
rr
f
$BQB6)RaR G+
 6  / / / +****** 655555555533x==((-------#NS S S, , ,
@ @ @$$y/ $ $ $ $N8# 8$ 8 8 8 8
Oc Od O O O O    
 K%g K%
C#K!JH+O)NG&1111114444444444  
 
 


 
 

c htn    
# 
$ 
 
 
 

 
 


 
 


 
 
 	&D D D
 
 
  	""""""	R 	R 	R 	R 	R 	R
	T 	 	 	 	. . .$ $ $ $ $#####555555CCCCCCEEEEEE;;;;;;777777------""""""      //////             
//////	: 	: 	: 	: 	: 	:    	T 	 	 	 	 	 	
 CKJH(O&NG&Cd C C C C
 
 
  !	 	 		# 	(4. 	 	 	 	 		 	 		# 	(4. 	 	 	 	
# 
$ 
 
 
 
4
 
 

 
 

 
 


 
 

 
 
O O O% % %5 5 5 5 5s   H HH