ó
    "EñiÃ/  ã                  óî   • S SK Jr  S SKJr  S SKrS SKJrJr  S SKJr  S SK	J
r
  \r/ SQr " S S5      r " S	 S
\R                  5      r " S S\R                  5      r " S S\5      r\r " S S5      rg)é    )ÚannotationsN)ÚMappingÚMutableMapping©Úref)ÚTensor)ÚTensorWeakRefÚ	WeakIdRefÚWeakIdKeyDictionaryÚWeakTensorKeyDictionaryc                  ó*   • \ rS rSrSS jrS rS rSrg)Ú_IterationGuardé   c                ó$   • [        U5      U l        g ©N)r   Úweakcontainer)Úselfr   s     ÚM/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/utils/weak.pyÚ__init__Ú_IterationGuard.__init__   s   € ä  Ó/ˆÕó    c                ób   • U R                  5       nUb  UR                  R                  U 5        U $ r   )r   Ú
_iteratingÚadd)r   Úws     r   Ú	__enter__Ú_IterationGuard.__enter__#   s,   € Ø×ÑÓ ˆØ‰=Ø�L‰L×Ñ˜TÔ"Øˆr   c                ó–   • U R                  5       nUb6  UR                  nUR                  U 5        U(       d  UR                  5         g g g r   )r   r   ÚremoveÚ_commit_removals)r   ÚeÚtÚbr   Úss         r   Ú__exit__Ú_IterationGuard.__exit__)   sB   € Ø×ÑÓ ˆØ‰=Ø—‘ˆAØ�H‰H�TŒNÞØ×"Ñ"Õ$ð ð r   )r   N©ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r%   Ú__static_attributes__© r   r   r   r      s   † ô0òõ%r   r   c                  óN   ^ • \ rS rSrS/rSS	U 4S jjjrU 4S jrS rS rSr	U =r
$ )
r
   éK   Ú_idc                óD   >• [        U5      U l        [        TU ]  X5        g r   )Úidr2   Úsuperr   ©r   ÚkeyÚcallbackÚ	__class__s      €r   r   ÚWeakIdRef.__init__N   s   ø€ ô �c“7ˆŒÜ‰Ñ˜Õ'r   c                óf   >• [         TU ]  5       n[        US5      (       a  UR                  5         U$ ©NÚ_fix_weakref©r5   Ú__call__Úhasattrr=   ©r   Úrr9   s     €r   r?   ÚWeakIdRef.__call__W   ó,   ø€ Ü‰GÑÓˆä�1�n×%Ñ%Ø�N‰NÔØˆr   c                ó   • U R                   $ r   ©r2   ©r   s    r   Ú__hash__ÚWeakIdRef.__hash__^   ó   € Ø�x‰xˆr   c                ó6   • U " 5       nU" 5       nUb  Ub  X#L $ XL $ r   r/   ©r   ÚotherÚar#   s       r   Ú__eq__ÚWeakIdRef.__eq__a   s*   € ñ ‹FˆÙ‹GˆØ‰=˜Q™]Ø�6ˆMØˆ}Ðr   rF   r   r'   ©r*   r+   r,   r-   Ú	__slots__r   r?   rH   rO   r.   Ú__classcell__©r9   s   @r   r
   r
   K   s(   ø† Ø�€I÷(ñ (õò÷ð r   r
   c                  óN   ^ • \ rS rSrS/rSS	U 4S jjjrU 4S jrS rS rSr	U =r
$ )
Ú_WeakHashReféw   r2   c                óD   >• [        U5      U l        [        TU ]  X5        g r   )Úhashr2   r5   r   r6   s      €r   r   Ú_WeakHashRef.__init__z   s   ø€ ô ˜“9ˆŒÜ‰Ñ˜Õ'r   c                óf   >• [         TU ]  5       n[        US5      (       a  UR                  5         U$ r<   r>   rA   s     €r   r?   Ú_WeakHashRef.__call__ƒ   rD   r   c                ó   • U R                   $ r   rF   rG   s    r   rH   Ú_WeakHashRef.__hash__Š   rJ   r   c                ó^   • U " 5       nU" 5       nUb  Ub  [        U5      [        U5      :H  $ XL $ r   )rY   rL   s       r   rO   Ú_WeakHashRef.__eq__�   s6   € ñ ‹FˆÙ‹GˆØ‰=˜Q™]Ü˜“7œd 1›gÑ%Ð%Øˆ}Ðr   rF   r   r'   rQ   rT   s   @r   rV   rV   w   s(   ø† Ø�€I÷(ñ (õò÷ð r   rV   c                  óä   • \ rS rSrS\4SS jjrSS jrSS jrSS jrS r	SS jr
SS	 jrSS
 jrS r\rS rSS jrS S jrS rS r\rS rS rS rS rSS jrSSS jjrS rS rS rS rSrg)!r   é™   Nc                ó°   • 0 U l         X l        [        U 5      4SS jjnX0l        / 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r   )r   Ú_pending_removalsÚappendÚdataÚKeyError)ÚkÚselfrefr   s      r   r   Ú,WeakIdKeyDictionary.__init__.<locals>.removeŸ   sS   € Ù“9ˆDØÑØ—?—?Ø×*Ñ*×1Ñ1°!Õ4ðØ ŸI™I a™Lð  øô $ó Ùðús   ¹A Á
AÁAFr'   )	rg   Úref_typer   Ú_removere   Úsetr   Ú
_dirty_lenÚupdate)r   Údictrl   r   s       r   r   ÚWeakIdKeyDictionary.__init__š   sP   € ØˆŒ	à Œä! $›iö 		ð Œà!#ˆÔÜ›%ˆŒØˆŒØÑØ�K‰K˜Õð r   c                ó¢   • U R                   R                  nU R                  n  U" 5       n X#	 M  ! [         a     g f = f! [         a     Nf = fr   )re   Úpoprg   Ú
IndexErrorrh   )r   rt   Údr7   s       r   r    Ú$WeakIdKeyDictionary._commit_removals²   sc   € ð
 ×$Ñ$×(Ñ(ˆØ�I‰IˆØðÙ“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 ©NF)rg   re   ro   )r   rv   ri   s      r   Ú_scrub_removalsÚ#WeakIdKeyDictionary._scrub_removalsÄ   s;   € Ø�I‰IˆØ-1×-CÒ-CÓ!NÒ-C¨ÈAÁv§!Ñ-CÑ!NˆÔØˆ�ùò "Os   ›	>¨>c                óJ   • SU l         U R                  U R                  U5      	 g ©NT)ro   rg   rl   ©r   r7   s     r   Ú__delitem__ÚWeakIdKeyDictionary.__delitem__É   s   € ØˆŒØ�I‰I�d—m‘m CÓ(Ñ)r   c                ó>   • U R                   U R                  U5         $ r   )rg   rl   r~   s     r   Ú__getitem__ÚWeakIdKeyDictionary.__getitem__Í   s   € Ø�y‰y˜Ÿ™ sÓ+Ñ,Ð,r   c                ó¼   • U R                   (       a!  U R                  (       a  U R                  5         [        U R                  5      [        U R                  5      -
  $ r   )ro   re   rz   Úlenrg   rG   s    r   Ú__len__ÚWeakIdKeyDictionary.__len__Ð   s=   € Ø�?�?˜t×5×5ð × Ñ Ô"Ü�4—9‘9‹~¤ D×$:Ñ$:Ó ;Ñ;Ð;r   c                óP   • SU R                   R                   S[        U 5      S S3$ )NÚ<z at z#xÚ>)r9   r*   r4   rG   s    r   Ú__repr__ÚWeakIdKeyDictionary.__repr__×   s(   € Ø�4—>‘>×*Ñ*Ð+¨4´°4³¸¨}¸AÐ>Ð>r   c                óR   • X R                   U R                  XR                  5      '   g r   )rg   rl   rm   )r   r7   Úvalues      r   Ú__setitem__ÚWeakIdKeyDictionary.__setitem__Ú   s   € Ø6;�	‰	�$—-‘- §\¡\Ó2Ò3r   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r   )r   r   rg   Úitems)r   Únewr7   rŽ   Úos        r   ÚcopyÚWeakIdKeyDictionary.copyÝ   sX   € Ü!Ó#ˆÜ˜TÕ"Ø"Ÿi™iŸo™oÖ/‘
�Ù“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)Nr   )Údeepcopy)r•   r˜   r9   r   rg   r’   )r   Úmemor˜   r“   r7   rŽ   r”   s          r   Ú__deepcopy__Ú WeakIdKeyDictionary.__deepcopy__è   sd   € Ý!à�n‰nÓˆÜ˜TÕ"Ø"Ÿi™iŸo™oÖ/‘
�Ù“E�Ø“=Ù% eÓ2�C“Fñ 0÷ #ð
 ˆ
÷ #Ô"ð
 ˆ
ús   ¢(A&ÁA&Á&
A5c                óX   • U R                   R                  U R                  U5      U5      $ r   )rg   Úgetrl   ©r   r7   Údefaults      r   r�   ÚWeakIdKeyDictionary.getó   s    € Ø�y‰y�}‰}˜TŸ]™]¨3Ó/°Ó9Ð9r   c                ób   •  U R                  U5      nX R                  ;   $ ! [         a     gf = fry   )rl   Ú	TypeErrorrg   )r   r7   Úwrs      r   Ú__contains__Ú WeakIdKeyDictionary.__contains__ö   s7   € ð	Ø—‘˜sÓ#ˆBð —Y‘Y‰Ðøô ó 	Ùð	ú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r   ©r   rg   r’   )r   r£   rŽ   r7   s       r   r’   ÚWeakIdKeyDictionary.itemsý   sC   é € Ü˜TÕ"Ø!ŸY™YŸ_™_Ö.‘	�Ù“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r   )r   rg   )r   r£   Úobjs      r   ÚkeysÚWeakIdKeyDictionary.keys  s7   é € Ü˜TÕ"Ø—i”i�Ù“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r   r§   )r   r£   rŽ   s      r   ÚvaluesÚWeakIdKeyDictionary.values  s<   é € Ü˜TÕ"Ø!ŸY™YŸ_™_Ö.‘	�Ù“4Ó#Ø”Kñ /÷ #×"Ö"üs!   ‚AŽ&A	¸A	Á 	AÁ	
AÁAc                ó,   • [        U R                  5      $ )aJ  Return a list of weak references to the keys.

The references are not guaranteed to be 'live' at the time
they are used, so the result of calling the references needs
to be checked before being used.  This can be used to avoid
creating references that will cause the garbage collector to
keep the keys around longer than needed.

)Úlistrg   rG   s    r   ÚkeyrefsÚWeakIdKeyDictionary.keyrefs  s   € ô �D—I‘I‹Ðr   c                óh   • SU l          U R                  R                  5       u  pU" 5       nUb  X24$ M+  r}   )ro   rg   Úpopitem)r   r7   rŽ   r”   s       r   rµ   ÚWeakIdKeyDictionary.popitem  s8   € ØˆŒØØŸ™×*Ñ*Ó,‰JˆCÙ“ˆAØ‰}Ø�x�ñ	 r   c                óh   • SU l         U R                  R                  " U R                  U5      /UQ76 $ r}   )ro   rg   rt   rl   )r   r7   Úargss      r   rt   ÚWeakIdKeyDictionary.pop(  s*   € ØˆŒà�y‰y�}Š}˜TŸ]™]¨3Ó/Ð7°$Ò7Ð7r   c                ól   • U R                   R                  U R                  XR                  5      U5      $ r   )rg   Ú
setdefaultrl   rm   rž   s      r   r»   ÚWeakIdKeyDictionary.setdefault-  s+   € Ø�y‰y×#Ñ#Ø�M‰M˜#Ÿ|™|Ó,¨gó
ð 	
r   c                ó  • U R                   nUbX  [        US5      (       d  [        0 5      " U5      nUR                  5        H"  u  pEXSU R	                  X@R
                  5      '   M$     U(       a  U R                  U5        g g )Nr’   )rg   r@   Útyper’   rl   rm   rp   )r   rq   Úkwargsrv   r7   rŽ   s         r   rp   ÚWeakIdKeyDictionary.update2  sf   € Ø�I‰IˆØÑÜ˜4 ×)Ñ)Ü˜B”x “~�Ø"Ÿj™jžl‘
�Ø6;�$—-‘- §\¡\Ó2Ó3ñ +æØ�K‰K˜Õð r   c                ó(   • U R                  U5        U $ r   )rp   )r   rM   s     r   Ú__ior__ÚWeakIdKeyDictionary.__ior__<  s   € Ø�‰�EÔØˆr   c                ó’   • [        U[        R                  5      (       a#  U R                  5       nUR	                  U5        U$ [
        $ r   )Ú
isinstanceÚ_collections_abcr   r•   rp   ÚNotImplemented©r   rM   Úcs      r   Ú__or__ÚWeakIdKeyDictionary.__or__@  s7   € Ü�eÔ-×5Ñ5×6Ñ6Ø—	‘	“ˆAØ�H‰H�UŒOØˆHÜÐr   c                ó´   • [        U[        R                  5      (       a4  U R                  5       nUR	                  U5        UR	                  U 5        U$ [
        $ r   )rÅ   rÆ   r   r9   rp   rÇ   rÈ   s      r   Ú__ror__ÚWeakIdKeyDictionary.__ror__G  sC   € Ü�eÔ-×5Ñ5×6Ñ6Ø—‘Ó ˆAØ�H‰H�UŒOØ�H‰H�TŒNØˆHÜÐr   c                ó  • [        U[        5      (       d  [        $ U R                  5        VVs0 s H  u  p#[	        U5      U_M     snnUR                  5        VVs0 s H  u  p#[	        U5      U_M     snn:H  $ s  snnf s  snnf r   )rÅ   r   rÇ   r’   r4   )r   rM   ri   Úvs       r   rO   ÚWeakIdKeyDictionary.__eq__Q  sp   € Ü˜%¤×)Ñ)Ü!Ð!Ø%)§Z¡Z¤\Ô2¢\™T˜Q”�1“�q’¡\Ò2Ø!&§¡¤ô7
Ú!.™˜ŒBˆq‹E�1ŠH¡ò7
ñ 
ð 	
ùÓ2ùó 7
s   ¯A;ÁB)ro   r   re   rm   rg   rl   r'   )r(   Úint)r(   Ústrr   )r(   Úbool) r*   r+   r,   r-   r
   r   r    rz   r   r‚   r†   r‹   r�   r•   Ú__copy__rš   r�   r¤   r’   r«   Ú__iter__r®   r²   rµ   rt   r»   rp   rÂ   rÊ   rÍ   rO   r.   r/   r   r   r   r   ™   s�   † Ø ¨9ö ô0ô$ ô
*ò-ô<ô?ô<òð €Hò	ô:ôò%òð €Hò ò
ò ò8ô

ö
 òòòõ
r   r   c                  ó4   • \ rS rSr% SrS\S'   S	S jrS rSrg)
r	   i]  zuWrapper around a weak ref of a Tensor that handles the _fix_weakref() call required when unwrapping a Tensor weakref.zWeakRef[Tensor]r   c                ó”   • [        U[        5      (       d  [        S[        U5       S35      e[        R
                  " U5      U l        g ©Nzexpected torch.Tensor, got Ú.)rÅ   r   ÚAssertionErrorr¾   Úweakrefr   )r   Útensors     r   r   ÚTensorWeakRef.__init__b  s8   € Ü˜&¤&×)Ñ)Ü Ð#>¼tÀF»|¸nÈAÐ!NÓOÐOÜ—;’;˜vÓ&ˆ�r   c                óª   • U R                  5       nUc  U$ [        U[        5      (       d  [        S[	        U5       S35      eUR                  5         U$ rÙ   )r   rÅ   r   rÛ   r¾   r=   )r   Úouts     r   r?   ÚTensorWeakRef.__call__g  sN   € Ø�h‰h‹jˆØ‰;ØˆJÜ˜#œv×&Ñ&Ü Ð#>¼tÀC»y¸kÈÐ!KÓLÐLà×ÑÔØˆ
r   r   N)rÝ   r   r(   r)   )	r*   r+   r,   r-   Ú__doc__Ú__annotations__r   r?   r.   r/   r   r   r	   r	   ]  s   ‡ Ùà	Óô'õ
r   r	   )Ú
__future__r   Úcollections.abcÚabcrÆ   rÜ   r   r   r   Útorchr   ÚWeakRefÚ__all__r   r
   rV   r   r   r	   r/   r   r   Ú<module>rê      ss   ðå "å *Û ß 3Ý å ð €ò€÷%ñ %ôd'�—‘ô 'ôX�7—;‘;ô ôD}
˜.ô }
ðB .Ð ÷ò r   