
    daf                        	 g d 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ZdZeefd	Zeefd
Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdefdefdefgdefdefdefgdefdefdefgdefdefdefgdZd Zd Z	 ddlmZ  e        Z!e!fdZ"	 dd lm"Z"  G d! d"      Z#	 dd#lm#Z#  G d$ d%e       Z$d& Z% ed'g d(      Z& G d) d*e'      Z( e        fe)e*he+e,e-fd+Z.d:d,Z/d- Z0	 dd.lm0Z0 d/ Z1d0 Z2d;d2Z3d3 Z4d4 Z5d5 Z6 G d6 d7      Z7 e        Z8 G d8 d9      Z9y1# e$ r Y w xY w# e$ r Y w xY w# e$ r Y w xY w# e$ r Y Ww xY w)<)update_wrapperwrapsWRAPPER_ASSIGNMENTSWRAPPER_UPDATEStotal_orderingcache
cmp_to_key	lru_cachereducepartialpartialmethodsingledispatchsingledispatchmethodcached_property    )get_cache_token)
namedtuple)recursive_repr)RLock)GenericAlias)
__module____name____qualname____doc____annotations____type_params__)__dict__c                     	 |D ]  }	 t        ||      }t        | ||        |D ](  }t        | |      j                  t        ||i              * || _        | S # t        $ r Y `w xY wN)getattrsetattrAttributeErrorupdate__wrapped__)wrapperwrappedassignedupdatedattrvalues         $/root/Python-3.12.4/Lib/functools.pyr   r   #   s    
  *	*GT*E GT5)*  B%%ggtR&@AB "GN  		s   A	A%$A%c                 *    	 t        t        | ||      S )Nr%   r&   r'   )r   r   r,   s      r*   r   r   A   s     >7$g7 7    c                 b    	 t        |       j                  | |      }|t        u r|S | xr | |k7  S r   type__lt__NotImplementedselfother	op_results      r*   _gt_from_ltr7   Y   :    OT
!!$.IN"=*TU]*r-   c                 `    	 t        |       j                  | |      }|t        u r|S |xs | |k(  S r   r/   r3   s      r*   _le_from_ltr:   `   8    KT
!!$.IN"%%r-   c                 T    	 t        |       j                  | |      }|t        u r|S | S r   r/   r3   s      r*   _ge_from_ltr=   g   1    CT
!!$.IN"=r-   c                 b    	 t        |       j                  | |      }|t        u r|S | xs | |k(  S r   r0   __le__r2   r3   s      r*   _ge_from_lerB   n   :    PT
!!$.IN"=)DEM)r-   c                 `    	 t        |       j                  | |      }|t        u r|S |xr | |k7  S r   r@   r3   s      r*   _lt_from_lerE   u   8    LT
!!$.IN"&&r-   c                 T    	 t        |       j                  | |      }|t        u r|S | S r   r@   r3   s      r*   _gt_from_lerH   |   r>   r-   c                 b    	 t        |       j                  | |      }|t        u r|S | xr | |k7  S r   r0   __gt__r2   r3   s      r*   _lt_from_gtrL      r8   r-   c                 `    	 t        |       j                  | |      }|t        u r|S |xs | |k(  S r   rJ   r3   s      r*   _ge_from_gtrN      r;   r-   c                 T    	 t        |       j                  | |      }|t        u r|S | S r   rJ   r3   s      r*   _le_from_gtrP      r>   r-   c                 b    	 t        |       j                  | |      }|t        u r|S | xs | |k(  S r   r0   __ge__r2   r3   s      r*   _le_from_gerT      rC   r-   c                 `    	 t        |       j                  | |      }|t        u r|S |xr | |k7  S r   rR   r3   s      r*   _gt_from_gerV      rF   r-   c                 T    	 t        |       j                  | |      }|t        u r|S | S r   rR   r3   s      r*   _lt_from_gerX      r>   r-   rK   rA   rS   r1   )r1   rA   rK   rS   c           	          	 t         D ch c]#  }t        | |d       t        t        |d       us"|% }}|st        d      t	        |      }t         |   D ]  \  }}||vs||_        t        | ||         | S c c}w )Nz6must define at least one ordering operation: < > <= >=)_convertr   object
ValueErrormaxr   r    )clsoprootsrootopnameopfuncs         r*   r   r      s    @"^Bgc2t&<GFTVX\D]&]R^E^QRRu:D"4. )$FOC() J _s
   #A8A8c                 ,     	  G  fddt               }|S )Nc                   P    e Zd ZdgZd Z fdZ fdZ fdZ fdZ fdZ	dZ
y)	cmp_to_key.<locals>.Kobjc                     || _         y r   rg   )r4   rg   s     r*   __init__zcmp_to_key.<locals>.K.__init__   s	    DHr-   c                 D     | j                   |j                         dk  S Nr   ri   r4   r5   mycmps     r*   r1   zcmp_to_key.<locals>.K.__lt__       599-11r-   c                 D     | j                   |j                         dkD  S rl   ri   rm   s     r*   rK   zcmp_to_key.<locals>.K.__gt__   ro   r-   c                 D     | j                   |j                         dk(  S rl   ri   rm   s     r*   __eq__zcmp_to_key.<locals>.K.__eq__       599-22r-   c                 D     | j                   |j                         dk  S rl   ri   rm   s     r*   rA   zcmp_to_key.<locals>.K.__le__   rs   r-   c                 D     | j                   |j                         dk\  S rl   ri   rm   s     r*   rS   zcmp_to_key.<locals>.K.__ge__   rs   r-   N)r   r   r   	__slots__rj   r1   rK   rr   rA   rS   __hash__)rn   s   r*   Krf      s-    G			2	2	3	3	3r-   rx   )r[   )rn   rx   s   ` r*   r   r      s    6F  Hr-   )r   c                     	 t        |      }|t        u r	 t        |      }n|}|D ]  } | ||      } |S # t        $ r t	        d      d w xY w)Nz0reduce() of empty iterable with no initial value)iter_initial_missingnextStopIteration	TypeError)functionsequenceinitialitr)   elements         r*   r
   r
      s{    	 
hB""	NHE
  )() L  	NBDIMN	Ns	   6 A)r
   c                   P     e Zd Z	 dZ fdZd Z e       d        Zd Zd Z	 xZ
S )r   )funcargskeywordsr   __weakref__c                    t        |      st        d      t        |d      r+|j                  |z   }i |j                  |}|j
                  }t        t        | #  |       }||_        ||_        ||_        |S )Nz#the first argument must be callabler   )	callabler~   hasattrr   r   r   superr   __new__)r^   r   r   r   r4   	__class__s        r*   r   zpartial.__new__  su    ~ABB4 99t#D4$--484H99DWc*3/		 r-   c                d    i | j                   |} | j                  g | j                  |i |S r   r   r   r   )r4   r   r   s      r*   __call__zpartial.__call__+  s7    0dmm0x0tyy7$))7d7h77r-   c                    t        |       j                  }t        | j                        g}|j	                  d | j
                  D               |j	                  d | j                  j                         D               t        |       j                  dk(  rd| ddj                  |       dS | ddj                  |       dS )Nc              3   2   K   | ]  }t        |        y wr   )repr).0xs     r*   	<genexpr>z#partial.__repr__.<locals>.<genexpr>3  s     /DG/s   c              3   0   K   | ]  \  }}| d |  yw)=N r   kvs      r*   r   z#partial.__repr__.<locals>.<genexpr>4  s     EVaqc1%LEs   	functoolsz
functools.(, ))
r0   r   r   r   extendr   r   itemsr   join)r4   qualnamer   s      r*   __repr__zpartial.__repr__/  s    :**TYY /TYY//Et}}/B/B/DEE:  K/z499T?*;1==1TYYt_-Q//r-   c                     t        |       | j                  f| j                  | j                  | j                  xs d | j                  xs d ffS r   )r0   r   r   r   r   r4   s    r*   
__reduce__zpartial.__reduce__9  sC    DzDII<$))TYY}}$dmm&;t*= = 	=r-   c                    t        |t              st        d      t        |      dk7  rt        dt        |             |\  }}}}t	        |      r4t        |t              r$|t        |t
              r|t        |t
              st        d      t        |      }|i }nt        |      t
        urt        |      }|i }|| _        || _        || _	        || _
        y )Nz(argument to __setstate__ must be a tuple   zexpected 4 items in state, got zinvalid partial state)
isinstancetupler~   lenr   dictr0   r   r   r   r   )r4   stater   r   kwds	namespaces         r*   __setstate__zpartial.__setstate__=  s    %'FGGu:?=c%j\JKK&+#dD)ju&=Zd%;!*Y*E344T{<D$Zt#:DI!		r-   )r   r   r   rv   r   r   r   r   r   r   __classcell__)r   s   @r*   r   r     s;     FI 8 0 0=r-   r   )r   c                   H    e Zd Z	 d Zd Zd ZddZed        Z e	e
      Zy)r   c                &   t        |      s&t        |d      st        dj                  |            t	        |t
              r;|j                  | _        |j                  |z   | _        i |j                  || _        y || _        || _        || _        y )N__get__z${!r} is not callable or a descriptor)	r   r   r~   formatr   r   r   r   r   )r4   r   r   r   s       r*   rj   zpartialmethod.__init__c  s~    ~gdI&>B"(&,0 0
 dM* 		DI		D(DI9t}}99DMDIDI$DMr-   c                 H   dj                  t        t        | j                              }dj                  d | j                  j                         D              }d}|j                  | j                  j                  | j                  j                  | j                  ||      S )Nr   c              3   F   K   | ]  \  }}d j                  ||        yw)z{}={!r}N)r   r   s      r*   r   z)partialmethod.__repr__.<locals>.<genexpr>x  s+      D%)Q '--a3 Ds   !z*{module}.{cls}({func}, {args}, {keywords}))moduler^   r   r   r   )r   mapr   r   r   r   r   r   r   r   r   )r4   r   r   format_strings       r*   r   zpartialmethod.__repr__v  s    yyT499-.99 D-1]]-@-@-BD DD##4>>+D+D(,(C(C)-)--5	 $ 7 	7r-   c                 B      fd} j                   |_          |_        |S )Nc                h    i j                   |} j                  | gj                  |i |S r   r   )cls_or_selfr   r   r4   s      r*   _methodz3partialmethod._make_unbound_method.<locals>._method  s:    4$--484H499[H499HtHxHHr-   )__isabstractmethod___partialmethod)r4   r   s   ` r*   _make_unbound_methodz"partialmethod._make_unbound_method  s&    	I (,'@'@$!%r-   Nc                 6   t        | j                  dd       }d }|L |||      }|| j                  ur5t        |g| j                  i | j                  }	 |j
                  |_        | | j                         j                  ||      }|S # t        $ r Y /w xY w)Nr   )	r   r   r   r   r   __self__r!   r   r   )r4   rg   r^   getresultnew_funcs         r*   r   zpartialmethod.__get__  s    diiD1?3}Htyy( !GDIIGG&.&7&7FO > ..088cBF & s   B 	BBc                 0    t        | j                  dd      S Nr   Fr   r   r   s    r*   r   z"partialmethod.__isabstractmethod__      tyy"8%@@r-   r   )r   r   r   rj   r   r   r   propertyr   classmethodr   __class_getitem__r   r-   r*   r   r   [  s>    %&	7& A A $L1r-   r   c                 `    t        | t              r| j                  } t        | t              r| S r   )r   r   r   r   s    r*   _unwrap_partialr     s&    
T7
#yy T7
#Kr-   	CacheInfo)hitsmissesmaxsizecurrsizec                   "    e Zd Z	 dZefdZd Zy)
_HashedSeq	hashvaluec                 (    || d d   ||      | _         y r   r   )r4   tuphashs      r*   rj   z_HashedSeq.__init__  s    Qcr-   c                     | j                   S r   r   r   s    r*   rw   z_HashedSeq.__hash__  s    ~~r-   N)r   r   r   rv   r   rj   rw   r   r-   r*   r   r     s     I!% #r-   r   c                 &   	 | }|r||z  }|j                         D ]  }	||	z  }	 |rC| |fd| D              z  }|rJ| |fd|j                         D              z  }t        |      S  ||      dk(  r |d         |v r|d   S t        |      S )Nc              3   .   K   | ]  } |        y wr   r   r   r   r0   s     r*   r   z_make_key.<locals>.<genexpr>  s     +T!W+   c              3   .   K   | ]  } |        y wr   r   r   s     r*   r   z_make_key.<locals>.<genexpr>  s     8Qa8r      r   )r   valuesr   )
r   r   typedkwd_mark	fasttypesr   r0   r   keyitems
         `   r*   	_make_keyr     s    	 CxJJL 	D4KC	u+d+++58$++-888C c? 
SQ4A<941vc?r-   c                      	 t         t              r dk  rYd nVt               r>t        t              r. dc} t	        | t
              } fd|_        t        ||      S  t        d       fd}|S )Nr      c                       dS Nr   r   r   r   s   r*   <lambda>zlru_cache.<locals>.<lambda>       %,P r-   z=Expected first argument to be an integer, a callable, or Nonec                 V    t        | t              }fd|_        t        ||       S )Nc                       dS r   r   r   s   r*   r   z8lru_cache.<locals>.decorating_function.<locals>.<lambda>  r   r-   )_lru_cache_wrapper
_CacheInfocache_parametersr   )user_functionr$   r   r   s     r*   decorating_functionz&lru_cache.<locals>.decorating_function  s(    $]GUJO#P g}55r-   )	r   intr   boolr   r   r   r   r~   )r   r   r   r$   r   s   ``   r*   r	   r	     s    0 '3Q;G	'	z%6!(#w$]GUJO#P g}55		KM 	M6
 r-   c                 d   	
 t               t        d\  	
i dxdj                  j                  t	               g d d gd d  dk(  r fd}n# fd}n	
 fd}fd}fd}||_        ||_        |S )	N)r   r         r   Fc                  "    dz   | i |}|S Nr   r   )r   r   r   r   r   s      r*   r$   z#_lru_cache_wrapper.<locals>.wrapper  s"     aKF"D1D1FMr-   c                  h     | |
      } |	      }|	urdz  |S dz   | i |}||<   |S r  r   )r   r   r   r   r   	cache_getr   make_keyr   sentinelr   r   s       r*   r$   z#_lru_cache_wrapper.<locals>.wrapper'  s[     4u-CsH-FX%	aKF"D1D1FE#JMr-   c                      | |      }5   |      }|:|\  }}}}||<   ||<      }|x|<   <   ||<   |<   dz  |cd d d        S dz  d d d         | i |}5  |v rnTr.}	||	<   ||	<   |	      }
   }d x<   <   |
= |	|<   n$   }|||g}|x|<   x<   |<           k\  d d d        |S # 1 sw Y   wxY w# 1 sw Y   |S xY wr  r   )r   r   r   link	link_prev	link_next_keyr   lastoldrootoldkey	oldresultKEYNEXTPREVRESULTr   r  	cache_lenfullr   lockr  r   r   ra   r   r   s               r*   r$   z#_lru_cache_wrapper.<locals>.wrapper6  s    4u-C  ~#9=6Iy$&/IdO&/IdO:D.22DJd!%DJ!%DJAID!  ! #D1D1F #4%<
 "G#&GCL&,GFO #4=D!#YF $VI/33DIVf ")E#J  :D $V4D;??DJ?deCj &K72DG#4H Mg #4H Ms   ;CC*ACCC$c                  V    	 5                  cd d d        S # 1 sw Y   y xY wr   r   )r   r  r   r  r   r   s   r*   
cache_infoz&_lru_cache_wrapper.<locals>.cache_infoo  s2    % 	BdFGY[A	B 	B 	Bs   (c                  t    	 5   j                          d d gd d  dxdd d d        y # 1 sw Y   y xY w)Nr   F)clear)r   r  r   r  r   ra   s   r*   cache_clearz'_lru_cache_wrapper.<locals>.cache_cleart  sH    2 	KKMT4.DGD6D		 	 	s    .7)r[   r   r   __len__r   r  r  )r   r   r   r   r$   r  r  r  r  r  r  r   r  r  r  r   r  r  r   ra   r  s   ````   @@@@@@@@@@@@@@r*   r   r     s    xHH(D$VED6D		II7DDT4&DG!|	 
	 	7	 7	 7	rB B
  $G%GNr-   )r   c                (    	  t        d       |       S )N)r   )r	   )r   s    r*   r   r     s    F"9T"=11r-   c                     	 g }	 | D cg c]  }|s|	 } }| s|S | D ]  }|d   }| D ]  }||dd  v sd }   n t        d      |j                  |       | D ]  }|d   |k(  s|d=  gc c}w )Nr   r   zInconsistent hierarchy)RuntimeErrorappend)	sequencesr   ss1	candidates2seqs          r*   	_c3_merger'    s    
 F
 )/1QQ/	/M 	B1I 12& $I
 	 788i  	C1v"F	! /s
   A,A,Nc                    	 t        t        | j                              D ]+  \  }t        d      st	        | j                        |z
  } n d}|rt        |      ng }t        | j                  d |       }g }t        | j                  |d        }|D ]?  t        |       st        fd| j                  D              r/|j                         A |D ]  |j                          |D cg c]  }t        ||       }}|D cg c]  }t        ||       }	}|D cg c]  }t        ||       }
}t        | gg|z   |	z   |
z   |gz   |gz   |gz         S c c}w c c}w c c}w )N__abstractmethods__r   c              3   6   K   | ]  }t        |        y wr   )
issubclass)r   bbases     r*   r   z_c3_mro.<locals>.<genexpr>  s      -()
1d#-s   abcs)	enumeratereversed	__bases__r   r   listr+  anyr   remove_c3_mror'  )r^   r/  iboundaryexplicit_basesabstract_basesother_basesr-  explicit_c3_mrosabstract_c3_mrosother_c3_mross          `   r*   r6  r6    s     Xcmm45 44./3==)A-H
 4:2D#--	23NNs}}XY/0K (c4  --0]]- *
 !!$'(  D=KLT40LL=KLT40LL:EF$WT-FMF
	+	,.;	<		*+	,/:m	<  MLFs   2EE#&E(c           	      Z    	 t         j                         fd}D cg c]  } ||      s| c}fd}D cg c]  } ||      r| c}t              }g }D ]  }g }|j                         D ]B  }	|	vst         |	      s|j	                  |	j                  D 
cg c]	  }
|
|v s|
 c}
       D |s|j	                  |       n|j                  t        d       |D ]  }	|	D ]  }||vs|j	                  |        !  t         |      S c c}w c c}w c c}
w )Nc                 j    | vxr- t        | d      xr t        | t               xr t        |       S )N__mro__)r   r   r   r+  )typbasesr^   s    r*   
is_relatedz _compose_mro.<locals>.is_related  s?    5  :WS)%< :)3C)F%F:%/S%9	;r-   c                 @    D ]  }| |k7  s	| |j                   v s y y)NTF)rA  )rB  r5   typess     r*   is_strict_basez$_compose_mro.<locals>.is_strict_base  s,     	Ee|u}} 4	 r-   T)r   reverser.  )setrA  __subclasses__r+  r   sortr   r6  )r^   rF  rD  nrG  type_setmrorB  foundsubr"  subclsrC  s   ``          @r*   _compose_mrorR    s7    E; /1AQ/E
 71^A%6Q7E 5zH
C '%%' 	HC%JsC$8FAXaFG	H JJsO

sD
) 	'C '$JJv&'	'' 3S!!7 0 8 Gs"   DDD#D#)	D(3D(c                    	 t        | |j                               }d }|D ]T  }|I||v rC|| j                  vr5|| j                  vr't        ||      st	        dj                  ||             n	||v sS|}V |j                  |      S )NzAmbiguous dispatch: {} or {})rR  keysrA  r+  r  r   r   )r^   registryrN  matchts        r*   
_find_implrX    s     sHMMO
,CE  X!3;;"6"'s{{":&0&:"#A#H#H1$  =E <<r-   c                 D  	
 	 dd l dd l}i 
|j                         d 
fdfdfdd		
fd		fd}t        | dd      | 
t        <   	|_        |_        j                  
      |_        j                  |_
        t        ||        |S )
Nr   c                     	 !t               }|k7  rj                          |	 |    }|S # t        $ r+ 	 |    }n# t        $ r t        |       }Y nw xY w|| <   Y |S w xY wr   )r   r  KeyErrorrX  )r^   current_tokenimplcache_tokendispatch_cacherU  s      r*   dispatchz singledispatch.<locals>.dispatch2  s    	 "+-Mm+$$&+	'!#&D   	'1} 1!#x01"&N3	's/   . 	A">A"AA"AA"!A"c                 @    ddl m}m}  ||       |j                  hv S )Nr   )
get_originUnion)typingrb  rc  	UnionType)r^   rb  rc  rF  s      r*   _is_union_typez&singledispatch.<locals>._is_union_typeI  s    ,#5%//":::r-   c                 v    t        | t              ryddlm}  |       xr t	        d  ||       D              S )NTr   get_argsc              3   <   K   | ]  }t        |t                y wr   )r   r0   )r   args     r*   r   zBsingledispatch.<locals>._is_valid_dispatch_type.<locals>.<genexpr>R  s     CcJsD)Cs   )r   r0   rd  ri  all)r^   ri  rf  s     r*   _is_valid_dispatch_typez/singledispatch.<locals>._is_valid_dispatch_typeM  s9    c4 #s# DCXc]CC	Er-   c                     	         r| fdS |t        d d      t         di       }|st        d d       }ddlm} t	        t         ||      j                                     \  }         s,        rt        d	|d
 d      t        d	|d
 d              rddlm}  |       D ]  }||<   	 n| <   	t         d      r
t               	
j                          |S )Nc                      |       S r   r   )fr^   registers    r*   r   z2singledispatch.<locals>.register.<locals>.<lambda>]  s    #q!1 r-   z(Invalid first argument to `register()`. z is not a class or union type.r   z(Invalid first argument to `register()`: zS. Use either `@register(some_class)` or plain `@register` on an annotated function.r   )get_type_hintszInvalid annotation for z. z not all arguments are classes.z is not a class.rh  r)  )r~   r   rd  rr  r|   rz   r   ri  r   r   r  )r^   r   annrr  argnameri  rk  rf  rm  r^  r_  rq  rU  s   `      r*   rq  z singledispatch.<locals>.registerT  sV   	 #3'|11>g;=  #0"5C>sg F0 1 
 D .^D%9%?%?%A BCLGS*3/!#&#1'B'!@B 
 $1'B'!13 
 #'} % $% !HSM730E#F)+Kr-   c                  Z    | st         d        | d   j                        | i |S )Nz( requires at least 1 positional argumentr   )r~   r   )r   kwr`  funcnames     r*   r$   zsingledispatch.<locals>.wrapper  sD    xj )4 4 5 5 +xQ))*D7B77r-   r   zsingledispatch functionr   )rF  weakrefWeakKeyDictionaryr   r[   rq  r`  MappingProxyTyperU  r  _clear_cacher   )r   rx  r$   rf  rm  r^  r`  r_  rw  rq  rU  rF  s      @@@@@@@@@r*   r   r      s     H..0NK.;E2 2h8 tZ)BCHHVGG--h7G)//G7D!Nr-   c                   4    e Zd Z	 d ZddZddZed        Zy)r   c                 |    t        |      st        |d      st        |d      t        |      | _        || _        y )Nr   z  is not callable or a descriptor)r   r   r~   r   
dispatcherr   r4   r   s     r*   rj   zsingledispatchmethod.__init__  s8    ~gdI&>th&FGHH(.	r-   Nc                 >    	 | j                   j                  ||      S )Nr   )r~  rq  )r4   r^   methods      r*   rq  zsingledispatchmethod.register  s#    	 ''&'99r-   c                       fd} j                   |_          j                  |_        t        | j                         |S )Nc                      j                   j                  | d   j                        } |j                        | i |S rl   )r~  r`  r   r   )r   kwargsr  r^   rg   r4   s      r*   r   z-singledispatchmethod.__get__.<locals>._method  s>    __--d1g.?.?@F+6>>#s+T<V<<r-   )r   rq  r   r   )r4   rg   r^   r   s   ``` r*   r   zsingledispatchmethod.__get__  s7    	= (,'@'@$==w		*r-   c                 0    t        | j                  dd      S r   r   r   s    r*   r   z)singledispatchmethod.__isabstractmethod__  r   r-   r   )r   r   r   rj   rq  r   r   r   r   r-   r*   r   r     s,    : A Ar-   r   c                   0    e Zd Zd Zd ZddZ ee      Zy)r   c                 B    || _         d | _        |j                  | _        y r   )r   attrnamer   r  s     r*   rj   zcached_property.__init__  s    	||r-   c                     | j                   || _         y || j                   k7  rt        d| j                   d|d      y )Nz?Cannot assign the same cached_property to two different names (z and z).)r  r~   )r4   ownernames      r*   __set_name__zcached_property.__set_name__  sM    ==  DMT]]"MM$E$5  #r-   Nc                    || S | j                   t        d      	 |j                  }|j                  | j                   t              }|t        u r#| j                  |      }	 ||| j                   <   |S |S # t        $ r3 dt	        |      j
                  d| j                   d}t        |      d w xY w# t        $ r3 dt	        |      j
                  d| j                   d}t        |      d w xY w)NzGCannot use cached_property instance without calling __set_name__ on it.zNo '__dict__' attribute on z instance to cache z
 property.zThe '__dict__' attribute on z7 instance does not support item assignment for caching )	r  r~   r   r!   r0   r   r   
_NOT_FOUNDr   )r4   instancer  r   msgvals         r*   r   zcached_property.__get__  s    K== Y[ [	+%%E iiz2*))H%C/'*dmm$ 
s
#  	+-d8n.E.E-H I%%)]]$5ZA  C.d*	+  /24>3J3J2M NDDHMMCTT^`   n$./s   A6 #B5 6<B25<C1r   )	r   r   r   rj   r  r   r   r   r   r   r-   r*   r   r     s    $
6 $L1r-   r   )r   Fr   ):__all__abcr   collectionsr   reprlibr   _threadr   rF  r   r   r   r   r   r7   r:   r=   rB   rE   rH   rL   rN   rP   rT   rV   rX   rZ   r   r   
_functoolsImportErrorr[   r{   r
   r   r   r   r   r3  r   r   strr   r0   r   r   r	   r   r   r'  r6  rR  rX  r   r   r  r   r   r-   r*   <module>r     s:  
   " "  =  2,> )#70+&*'+&*' +&+&+&( +&+&+&( +&+&+&( +&+&+&($&	% 8 '7 8	!? ?B	"
E2F E2T %NO
 "  st>,\rh	-26+Z("T4vt!A !AP X
*2 *2C  		P  		X  		X	  		sH   
D& D1 .D< 1E &D.-D.1D98D9<EEEE