
    -hh	T                     .   S SK JrJrJrJrJrJrJrJr  S SK	J
r
Jr  S SKrS SKrS SKr\\4r/ SQr\R"                  R%                  \
5         " S S\5      r " S S\R(                  5      r " S	 S
\5      r " S S\R(                  5      r " S S5      rg)    )getweakrefcountgetweakrefsrefproxyCallableProxyType	ProxyTypeReferenceType_remove_dead_weakref)WeakSet_IterationGuardN)r   r   r   r   WeakKeyDictionaryr	   r   r   
ProxyTypesWeakValueDictionaryr   
WeakMethodfinalizec                   Z   ^  \ rS rSrSrSS jrU 4S jrS rS r\	R                  r
SrU =r$ )	r   &   )	_func_ref
_meth_type_alive__weakref__c                 @  ^^  UR                   nUR                  nUU4S jn[        R                  " XU5      n[        XE5      Ul        [        U5      Ul	        SUl
        [        U5      mU$ ! [         a%    [        SR	                  [        U5      5      5      S ef = f)Nz)argument should be a bound method, not {}c                 ^   > T" 5       nUR                   (       a  SUl         Tb	  T" U5        g g g NF)r   )argselfcallbackself_wrs     0/opt/python-3.13.8/usr/lib/python3.13/weakref.py_cbWeakMethod.__new__.<locals>._cb5   s1     9D{{#'TN (     T)__self____func__AttributeError	TypeErrorformattyper   __new__r   r   r   )clsmethr   objfuncr    r   r   s     `    @r   r)   WeakMethod.__new__.   s    	;--C==D	# {{3S)Tt*d)!  	;G#VDJ/16:;	;s   A. ./Bc                 p   > [         TU ]  5       nU R                  5       nUb  Uc  g U R                  X!5      $ N)super__call__r   r   )r   r,   r-   	__class__s      r   r2   WeakMethod.__call__D   s7    g ~~;$,t))r"   c                     [        U[        5      (       a[  U R                  (       a  UR                  (       d  XL $ [        R                  " X5      =(       a    U R
                  UR
                  :H  $ [        $ r0   )
isinstancer   r   r   __eq__r   NotImplementedr   others     r   r7   WeakMethod.__eq__K   sK    eZ((;;ell}$::d*Pt~~/PPr"   c                     [        U[        5      (       a[  U R                  (       a  UR                  (       d  XL$ [        R                  " X5      =(       d    U R
                  UR
                  :g  $ [        $ r0   )r6   r   r   r   __ne__r   r8   r9   s     r   r=   WeakMethod.__ne__R   sL    eZ((;;ell((::d*Odnn.OOr"   )r   r   r   r0   )__name__
__module____qualname____firstlineno__	__slots__r)   r2   r7   r=   r   __hash____static_attributes____classcell__r3   s   @r   r   r   &   s*     CI,* ||Hr"   r   c                       \ rS rSrSS jr\4S jrS rS rS r	S r
S rS	 rS
 r\rS rSS jrS rS r\rS rS rS rS rSS jrSS jrS rS rS rS rSrg)r   \   c                    [        U 5      [        4S jnX0l        / U l        [	        5       U l        0 U l        U R                  " U40 UD6  g )Nc                     U" 5       nUbU  UR                   (       a&  UR                  R                  U R                  5        g U" UR                  U R                  5        g g r0   )
_iterating_pending_removalsappendkeydata)wrselfref_atomic_removalr   s       r   remove,WeakValueDictionary.__init__.<locals>.removei   sG    9D??**11"&&9 $DIIrvv6  r"   )r   r
   _removerM   setrL   rP   update)r   r:   kwrT   s       r   __init__WeakValueDictionary.__init__h   sA    "4y:N 	7 !#%	E R r"   c                     U R                   R                  nU R                  n  U" 5       nU" X45        M  ! [         a     g f = fr0   )rM   poprP   
IndexError)r   rS   r]   drO   s        r   _commit_removals$WeakValueDictionary._commit_removalsy   sP    $$((II e A#   s   6 
AAc                     U R                   (       a  U R                  5         U R                  U   " 5       nUc  [        U5      eU$ r0   rM   r`   rP   KeyErrorr   rO   os      r   __getitem__WeakValueDictionary.__getitem__   s;    !!!!#IIcN93-Hr"   c                 `    U R                   (       a  U R                  5         U R                  U	 g r0   )rM   r`   rP   r   rO   s     r   __delitem__WeakValueDictionary.__delitem__   s"    !!!!#IIcNr"   c                 n    U R                   (       a  U R                  5         [        U R                  5      $ r0   )rM   r`   lenrP   r   s    r   __len__WeakValueDictionary.__len__   s%    !!!!#499~r"   c                     U R                   (       a  U R                  5          U R                  U   " 5       nUS L$ ! [         a     gf = fr   rc   re   s      r   __contains__ WeakValueDictionary.__contains__   sL    !!!!#			# A }  		s   ; 
AAc                 J    SU R                   R                  [        U 5      4-  $ Nz<%s at %#x>r3   r?   idro   s    r   __repr__WeakValueDictionary.__repr__         7 7DBBBr"   c                     U R                   (       a  U R                  5         [        X R                  U5      U R                  U'   g r0   )rM   r`   KeyedRefrV   rP   r   rO   values      r   __setitem__WeakValueDictionary.__setitem__   s/    !!!!#!%s;		#r"   c                    U R                   (       a  U R                  5         [        5       n[        U 5         U R                  R                  5        H  u  p#U" 5       nUc  M  XAU'   M     S S S 5        U$ ! , (       d  f       U$ = fr0   )rM   r`   r   r   rP   items)r   newrO   rQ   rf   s        r   copyWeakValueDictionary.copy   sm    !!!!#!#T"99??,D= H - #
 
 #"
 
s   (A5#A55
Bc                 2   SSK Jn  U R                  (       a  U R                  5         U R	                  5       n[        U 5         U R                  R                  5        H  u  pEU" 5       nUc  M  XcU" XA5      '   M     S S S 5        U$ ! , (       d  f       U$ = fNr   )deepcopy)r   r   rM   r`   r3   r   rP   r   )r   memor   r   rO   rQ   rf   s          r   __deepcopy__ WeakValueDictionary.__deepcopy__   sz    !!!!!#nnT"99??,D=/0+, - #
 
 #"
 
s   (B/B
BNc                     U R                   (       a  U R                  5          U R                  U   nU" 5       nUc  U$ U$ ! [         a    Us $ f = fr0   rc   )r   rO   defaultrQ   rf   s        r   getWeakValueDictionary.get   sW    !!!!#
	3B Ay  	N	s   A   AAc              #      #    U R                   (       a  U R                  5         [        U 5         U R                  R	                  5        H  u  pU" 5       nUc  M  X4v   M     S S S 5        g ! , (       d  f       g = f7fr0   rM   r`   r   rP   r   )r   krQ   vs       r   r   WeakValueDictionary.items   sW     !!!!#T"*D=$J + #""s"   -A>(A-	A-$	A>-
A;7A>c              #      #    U R                   (       a  U R                  5         [        U 5         U R                  R	                  5        H  u  pU" 5       c  M  Uv   M     S S S 5        g ! , (       d  f       g = f7fr0   r   )r   r   rQ   s      r   keysWeakValueDictionary.keys   sQ     !!!!#T"*4#G + #"""   -A;&A*A*!	A;*
A84A;c              #      #    U R                   (       a  U R                  5         [        U 5         U R                  R	                  5        S h  vN   S S S 5        g  N! , (       d  f       g = f7fr0   rM   r`   r   rP   valuesro   s    r   itervaluerefs!WeakValueDictionary.itervaluerefs   sM      !!!!#T"yy''))) #") #"s.   -A.AAA	A.A
A+'A.c              #      #    U R                   (       a  U R                  5         [        U 5         U R                  R	                  5        H  nU" 5       nUc  M  Uv   M     S S S 5        g ! , (       d  f       g = f7fr0   r   r   rQ   r,   s      r   r   WeakValueDictionary.values   sU     !!!!#T"ii&&(d?I ) #""r   c                     U R                   (       a  U R                  5          U R                  R                  5       u  pU" 5       nUb  X4$ M+  r0   )rM   r`   rP   popitem)r   rO   rQ   rf   s       r   r   WeakValueDictionary.popitem   sF    !!!!#ii'')GCA}v	 r"   c                     U R                   (       a  U R                  5          U R                  R                  U5      " 5       nUc  U(       a  US   $ [	        U5      eU$ ! [         a    S n N*f = f)Nr   )rM   r`   rP   r]   rd   )r   rO   argsrf   s       r   r]   WeakValueDictionary.pop  si    !!!!#			c"$A 9Awsm#H  	A	s    A A.-A.c                      U R                   U   " 5       nUcF  U R                  (       a  U R                  5         [	        X R
                  U5      U R                   U'   U$ U$ ! [         a    S n NYf = fr0   )rP   rd   rM   r`   r}   rV   )r   rO   r   rf   s       r   
setdefaultWeakValueDictionary.setdefault  sk    			# A 9%%%%'%g||SADIIcNNH  	A	s   A! !A0/A0c                `   U R                   (       a  U R                  5         U R                  nUbM  [        US5      (       d  [	        U5      nUR                  5        H  u  pE[        XPR                  U5      X4'   M     UR                  5        H  u  pE[        XPR                  U5      X4'   M     g Nr   )rM   r`   rP   hasattrdictr   r}   rV   )r   r:   kwargsr_   rO   rf   s         r   rX   WeakValueDictionary.update!  s    !!!!#II5'**U++-!!\\37 (llnFCas3AF %r"   c                     U R                   (       a  U R                  5         [        U R                  R	                  5       5      $ r0   )rM   r`   listrP   r   ro   s    r   	valuerefsWeakValueDictionary.valuerefs-  s1     !!!!#DII$$&''r"   c                 (    U R                  U5        U $ r0   rX   r9   s     r   __ior__WeakValueDictionary.__ior__;      Er"   c                     [        U[        R                  5      (       a#  U R                  5       nUR	                  U5        U$ [
        $ r0   r6   _collections_abcMappingr   rX   r8   r   r:   cs      r   __or__WeakValueDictionary.__or__?  7    e-5566		AHHUOHr"   c                     [        U[        R                  5      (       a4  U R                  5       nUR	                  U5        UR	                  U 5        U$ [
        $ r0   r6   r   r   r3   rX   r8   r   s      r   __ror__WeakValueDictionary.__ror__F  C    e-5566 AHHUOHHTNHr"   )rL   rM   rV   rP   ) r0   )r?   r@   rA   rB   rZ   r
   r`   rg   rk   rp   rs   ry   r   r   __copy__r   r   r   r   __iter__r   r   r   r]   r   rX   r   r   r   r   rE   r   r"   r   r   r   \   s    !" 0D 
$

C<
	 H
 H*
4(r"   r   c                   2   ^  \ rS rSrSrS rU 4S jrSrU =r$ )r}   iO  rO   c                 @    [         R                  " XU5      nX4l        U$ r0   )r   r)   rO   )r(   obr   rO   r   s        r   r)   KeyedRef.__new__[  s    {{4X.r"   c                 $   > [         TU ]  X5        g r0   )r1   rZ   )r   r   r   rO   r3   s       r   rZ   KeyedRef.__init__`  s    &r"   )	r?   r@   rA   rB   rC   r)   rZ   rE   rF   rG   s   @r   r}   r}   O  s     I
' 'r"   r}   c                       \ rS rSrSS jrS rS rS rS rS r	S	 r
S
 rS r\rS rSS jrS rS rS r\rS rS rS rS rSS jrSS jrS rS rS rSrg)r   id  Nc                     0 U l         [        U 5      4S jnX l        / U l        [	        5       U l        SU l        Ub  U R                  U5        g g )Nc                     U" 5       nUb<  UR                   (       a  UR                  R                  U 5        g  UR                  U 	 g g ! [         a     g f = fr0   )rL   rM   rN   rP   rd   )r   rR   r   s      r   rT   *WeakKeyDictionary.__init__.<locals>.removeq  sS    9D??**11!4 IIaL   $ s   A 
AAF)rP   r   rV   rM   rW   rL   
_dirty_lenrX   )r   r   rT   s      r   rZ   WeakKeyDictionary.__init__o  sK    	!$i 		 !#%KK r"   c                     U R                   R                  nU R                  n  U" 5       n X#	 M  ! [         a     g f = f! [         a     Nf = fr0   )rM   r]   rP   r^   rd   )r   r]   r_   rO   s       r   r`   "WeakKeyDictionary._commit_removals  sc    
 $$((IIeF   
  s   1 A 
>>
AAc                     U R                   nU R                   Vs/ s H  o"U;   d  M
  UPM     snU l        SU l        g s  snf r   )rP   rM   r   )r   r_   r   s      r   _scrub_removals!WeakKeyDictionary._scrub_removals  s;    II-1-C-C!N-CAv!-C!N "Os   	>>c                 >    SU l         U R                  [        U5      	 g NT)r   rP   r   rj   s     r   rk   WeakKeyDictionary.__delitem__  s    IIc#hr"   c                 2    U R                   [        U5         $ r0   )rP   r   rj   s     r   rg   WeakKeyDictionary.__getitem__  s    yyS""r"   c                     U R                   (       a!  U R                  (       a  U R                  5         [        U R                  5      [        U R                  5      -
  $ r0   )r   rM   r   rn   rP   ro   s    r   rp   WeakKeyDictionary.__len__  s=    ??t55   "499~D$:$: ;;;r"   c                 J    SU R                   R                  [        U 5      4-  $ rv   rw   ro   s    r   ry   WeakKeyDictionary.__repr__  r{   r"   c                 F    X R                   [        XR                  5      '   g r0   )rP   r   rV   r~   s      r   r   WeakKeyDictionary.__setitem__  s    ,1		#c<<()r"   c                     [        5       n[        U 5         U R                  R                  5        H  u  p#U" 5       nUc  M  X1U'   M     S S S 5        U$ ! , (       d  f       U$ = fr0   )r   r   rP   r   )r   r   rO   r   rf   s        r   r   WeakKeyDictionary.copy  sX    !T""iioo/
E="F 0 #
 
 #"
 
s   (AA
A#c                     SSK Jn  U R                  5       n[        U 5         U R                  R                  5        H  u  pEU" 5       nUc  M  U" XQ5      X6'   M     S S S 5        U$ ! , (       d  f       U$ = fr   )r   r   r3   r   rP   r   )r   r   r   r   rO   r   rf   s          r   r   WeakKeyDictionary.__deepcopy__  sd    !nnT""iioo/
E=%e2CF 0 #
 
 #"
 
s   (A&A&&
A5c                 L    U R                   R                  [        U5      U5      $ r0   )rP   r   r   r   rO   r   s      r   r   WeakKeyDictionary.get  s    yy}}SXg..r"   c                 V     [        U5      nX R                  ;   $ ! [         a     gf = fr   )r   r&   rP   )r   rO   rQ   s      r   rs   WeakKeyDictionary.__contains__  s2    	SB YY  		s    
((c              #      #    [        U 5         U R                  R                  5        H  u  pU" 5       nUc  M  X24v   M     S S S 5        g ! , (       d  f       g = f7fr0   r   rP   r   )r   rQ   r   rO   s       r   r   WeakKeyDictionary.items  sC     T"!YY__.	d?*$ / #""s!   A(A	A	A
AAc              #      #    [        U 5         U R                   H  nU" 5       nUc  M  Uv   M     S S S 5        g ! , (       d  f       g = f7fr0   )r   rP   r   s      r   r   WeakKeyDictionary.keys  s7     T"iid?I   #""s   A;;	A
A	Ac              #      #    [        U 5         U R                  R                  5        H  u  pU" 5       c  M  Uv   M     S S S 5        g ! , (       d  f       g = f7fr0   r   )r   rQ   r   s      r   r   WeakKeyDictionary.values  s<     T"!YY__.	4#K / #""s!   A&A	A	 	A	
AAc                 ,    [        U R                  5      $ r0   )r   rP   ro   s    r   keyrefsWeakKeyDictionary.keyrefs  s     DIIr"   c                 h    SU l          U R                  R                  5       u  pU" 5       nUb  X24$ M+  r   )r   rP   r   )r   rO   r   rf   s       r   r   WeakKeyDictionary.popitem  s8    **,JCA}x	 r"   c                 \    SU l         U R                  R                  " [        U5      /UQ76 $ r   )r   rP   r]   r   )r   rO   r   s      r   r]   WeakKeyDictionary.pop  s%    yy}}SX---r"   c                 `    U R                   R                  [        XR                  5      U5      $ r0   )rP   r   r   rV   r   s      r   r   WeakKeyDictionary.setdefault  s"    yy##C\\$:7CCr"   c                
   U R                   nUbR  [        US5      (       d  [        0 5      " U5      nUR                  5        H  u  pEXS[	        X@R
                  5      '   M     [        U5      (       a  U R                  U5        g g r   )rP   r   r(   r   r   rV   rn   rX   )r   r   r   r_   rO   r   s         r   rX   WeakKeyDictionary.update  sh    II4))Bx~"jjl
,1#c<<() +v;;KK r"   c                 (    U R                  U5        U $ r0   r   r9   s     r   r   WeakKeyDictionary.__ior__  r   r"   c                     [        U[        R                  5      (       a#  U R                  5       nUR	                  U5        U$ [
        $ r0   r   r   s      r   r   WeakKeyDictionary.__or__  r   r"   c                     [        U[        R                  5      (       a4  U R                  5       nUR	                  U5        UR	                  U 5        U$ [
        $ r0   r   r   s      r   r   WeakKeyDictionary.__ror__  r   r"   )r   rL   rM   rV   rP   r0   )r?   r@   rA   rB   rZ   r`   r   rk   rg   rp   ry   r   r   r   r   r   rs   r   r   r   r   r   r   r]   r   rX   r   r   r   rE   r   r"   r   r   r   d  s    ($ 
 #<C2 H/% H 
 .D r"   r   c                       \ rS rSrSr0 rSr\R                  " 5       r	Sr
Sr " S S5      rS rSS jrS	 rS
 r\S 5       r\S 5       r\R(                  S 5       rS r\S 5       r\S 5       rSrg)r   i  r   Fc                       \ rS rSrSrSrg)zfinalize._Infoi5  )weakrefr-   r   r   atexitindexr   N)r?   r@   rA   rB   rC   rE   r   r"   r   _Infofinalize._Info5  s    L	r"   r  c                f   U R                   (       d*  SS KnUR                  U R                  5        S[        l         U R                  5       n[        X5      Ul        X&l        X6l	        U=(       d    S Ul
        SUl        [        U R                  5      Ul        X`R                  U '   S[        l        g )Nr   T)_registered_with_atexitr  register	_exitfuncr   r  r   r  r-   r   r   next_index_iterr  	_registry_dirty)r   r,   r-   r   r   r  infos          r   rZ   finalize.__init__8  s    ++ OODNN+/3H,zz|3~		n$**+
#tr"   Nc                     U R                   R                  U S 5      nU(       aA  U R                  (       d/  UR                  " UR                  0 UR
                  =(       d    0 D6$ g g r0   )r  r]   	_shutdownr-   r   r   )r   _r  s      r   r2   finalize.__call__I  sK     ~~!!$-99dii?DKK,=2?? '4r"   c                    U R                   R                  U 5      nU=(       a    UR                  5       nUbN  U R                   R                  U S 5      (       a,  X!R                  UR
                  UR                  =(       d    0 4$ g g r0   )r  r   r  r]   r-   r   r   r   r  r,   s      r   detachfinalize.detachP  sh     ~~!!$'%t||~?t~~11$==DIIt{{/@bAA  >?r"   c                     U R                   R                  U 5      nU=(       a    UR                  5       nUb,  X!R                  UR                  UR
                  =(       d    0 4$ g r0   )r  r   r  r-   r   r   r  s      r   peekfinalize.peekX  sP     ~~!!$'%t||~?DIIt{{/@bAA r"   c                     X R                   ;   $ r0   )r  ro   s    r   alivefinalize.alive`  s     ~~%%r"   c                 t    U R                   R                  U 5      n[        U5      =(       a    UR                  $ r0   r  r   boolr  )r   r  s     r   r  finalize.atexite  s+     ~~!!$'Dz)dkk)r"   c                 j    U R                   R                  U 5      nU(       a  [        U5      Ul        g g r0   r)  )r   r   r  s      r   r  r+  k  s)    ~~!!$'u+DK r"   c                 8   U R                   R                  U 5      nU=(       a    UR                  5       nUc#  S[        U 5      R                  [        U 5      4-  $ S[        U 5      R                  [        U 5      [        U5      R                  [        U5      4-  $ )Nz<%s object at %#x; dead>z!<%s object at %#x; for %r at %#x>)r  r   r  r(   r?   rx   r  s      r   ry   finalize.__repr__q  s    ~~!!$'%t||~;-d1D1Dbh0OOO6d$$bhS	0B0BBsGLM Mr"   c                     U R                   R                  5        VVs/ s H  u  pUR                  (       d  M  X4PM     nnnUR                  S S9  U VVs/ s H  u  pUPM	     snn$ s  snnf s  snnf )Nc                      U S   R                   $ )N   )r  )items    r   <lambda>+finalize._select_for_exit.<locals>.<lambda>~  s    tAw}}r"   r   )r  r   r  sort)r*   fiLs       r   _select_for_exitfinalize._select_for_exitz  sb     !$ 3 3 5B 5uUaU 5B	,- !qeqq!! C!s   A*A*A0c                 4   Sn U R                   (       a  SS KnUR                  5       (       a  SnUR                  5         S n Ub  [        R
                  (       a  U R                  5       nS[        l        U(       d  OUR                  5       n U" 5         MU  S[        l        U(       a  WR                  5         g g ! [         a)    [        R                  " [        R                  " 5       6    NXf = f! S[        l        U(       a  WR                  5         f f = f)NFr   T)r  gc	isenableddisabler   r  r9  r]   	Exceptionsys
excepthookexc_infor  enable)r*   reenable_gcr<  pendingr6  s        r   r  finalize._exitfunc  s    
 	}}<<>>"&KJJL(//"%"6"6"8*/"A8
  $ "&H		  % 878
 "&H		 s0   B
C2 B< C2 <0C/,C2 .C//C2 2%Dr0   )r?   r@   rA   rB   rC   r  r  	itertoolscountr  r  r  r  rZ   r2   r   r#  propertyr&  r  setterry   classmethodr9  r  rE   r   r"   r   r   r     s    $ III//#KF#M M"@BB & & * *
 ]]& &
M " "    r"   r   )_weakrefr   r   r   r   r   r   r	   r
   _weakrefsetr   r   r   r@  rG  r   __all__
MutableSetr  r   MutableMappingr   r}   r   r   r   r"   r   <module>rQ     s      1  
 *+
0    $ $W -3 3lp*99 pf's '*u(77 upF Fr"   