Ë
    ùÿæiÃ/  ã                  óî   — d dl mZ d dlmZ d dlZd dlmZmZ d dlmZ d dl	m
Z
 eZg d¢Z G d„ d«      Z G d	„ d
ej                  «      Z G d„ dej                  «      Z G d„ de«      ZeZ G d„ d«      Zy)é    )ÚannotationsN)ÚMappingÚMutableMapping)Úref)ÚTensor)ÚTensorWeakRefÚ	WeakIdRefÚWeakIdKeyDictionaryÚWeakTensorKeyDictionaryc                  ó    — e Zd Zdd„Zd„ Zd„ Zy)Ú_IterationGuardc                ó$   — t        |«      | _        y ©N)r   Úweakcontainer)Úselfr   s     úe/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/torch/utils/weak.pyÚ__init__z_IterationGuard.__init__   s   € ä  Ó/ˆÕó    c                ó`   — | j                  «       }|�|j                  j                  | «       | S r   )r   Ú
_iteratingÚadd)r   Úws     r   Ú	__enter__z_IterationGuard.__enter__#   s,   € Ø×ÑÓ ˆØˆ=Ø�L‰L×Ñ˜TÔ"Øˆr   c                óŠ   — | j                  «       }|�1|j                  }|j                  | «       |s|j                  «        y y y r   )r   r   ÚremoveÚ_commit_removals)r   ÚeÚtÚbr   Úss         r   Ú__exit__z_IterationGuard.__exit__)   sB   € Ø×ÑÓ ˆØˆ=Ø—‘ˆAØ�H‰H�TŒNÙØ×"Ñ"Õ$ð ð r   N©ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__r   r   r!   © r   r   r   r      s   „ ó0òó%r   r   c                  ó>   ‡ — e Zd ZdgZddˆ fd„Zˆ fd„Zd„ Zd„ Zˆ xZS )r	   Ú_idc                óF   •— t        |«      | _        t        ‰| �  ||«       y r   )Úidr*   Úsuperr   ©r   ÚkeyÚcallbackÚ	__class__s      €r   r   zWeakIdRef.__init__N   s   ø€ ô �c“7ˆŒÜ‰Ñ˜˜hÕ'r   c                ó\   •— t         ‰| �  «       }t        |d«      r|j                  «        |S ©NÚ_fix_weakref©r-   Ú__call__Úhasattrr4   ©r   Úrr1   s     €r   r6   zWeakIdRef.__call__W   ó)   ø€ Ü‰GÑÓˆä�1�nÔ%Ø�N‰NÔØˆr   c                ó   — | j                   S r   ©r*   ©r   s    r   Ú__hash__zWeakIdRef.__hash__^   ó   € Ø�x‰xˆr   c                ó6   —  | «       } |«       }|�|�||u S | |u S r   r(   ©r   ÚotherÚar   s       r   Ú__eq__zWeakIdRef.__eq__a   s.   € ñ ‹FˆÙ‹GˆØˆ=˜Q˜]Ø˜�6ˆMØ�uˆ}Ðr   r   r"   ©	r%   r&   r'   Ú	__slots__r   r6   r>   rD   Ú__classcell__©r1   s   @r   r	   r	   K   s   ø„ Ø�€Iö(ôòör   r	   c                  ó>   ‡ — e Zd ZdgZddˆ fd„Zˆ fd„Zd„ Zd„ Zˆ xZS )Ú_WeakHashRefr*   c                óF   •— t        |«      | _        t        ‰| �  ||«       y r   )Úhashr*   r-   r   r.   s      €r   r   z_WeakHashRef.__init__z   s   ø€ ô ˜“9ˆŒÜ‰Ñ˜˜hÕ'r   c                ó\   •— t         ‰| �  «       }t        |d«      r|j                  «        |S r3   r5   r8   s     €r   r6   z_WeakHashRef.__call__ƒ   r:   r   c                ó   — | j                   S r   r<   r=   s    r   r>   z_WeakHashRef.__hash__Š   r?   r   c                ó\   —  | «       } |«       }|�|�t        |«      t        |«      k(  S | |u S r   )rL   rA   s       r   rD   z_WeakHashRef.__eq__�   s8   € ñ ‹FˆÙ‹GˆØˆ=˜Q˜]Ü˜“7œd 1›gÑ%Ð%Ø�uˆ}Ðr   r   r"   rE   rH   s   @r   rJ   rJ   w   s   ø„ Ø�€Iö(ôòör   rJ   c                  óÂ   — e Zd Zdefdd„Zdd„Zdd„Zdd„Zd„ Zdd„Z	dd„Z
dd	„Zd
„ ZeZd„ Zdd„Zdd„Zd„ Zd„ ZeZd„ Zd„ Zd„ Zd„ Zdd„Zddd„Zd„ Zd„ Zd„ Zd„ Zy)r
   Nc                ó®   — i | _         || _        t        | «      fdd„}|| _        g | _        t        «       | _        d| _        |�| j                  |«       y y )Nc                ó¢   —  |«       }|�7|j                   r|j                  j                  | «       y 	 |j                  | = y y # t        $ r Y y w xY wr   )r   Ú_pending_removalsÚappendÚdataÚKeyError)ÚkÚselfrefr   s      r   r   z,WeakIdKeyDictionary.__init__.<locals>.removeŸ   sS   € Ù“9ˆDØÐØ—?’?Ø×*Ñ*×1Ñ1°!Õ4ðØ ŸI™I a™Lð  øô $ò Ùðús   ³A Á	AÁAFr"   )	rU   Úref_typer   Ú_removerS   Úsetr   Ú
_dirty_lenÚupdate)r   ÚdictrY   r   s       r   r   zWeakIdKeyDictionary.__init__š   sT   € ØˆŒ	à ˆŒä! $›iô 		ð ˆŒà!#ˆÔÜ›%ˆŒØˆŒØÐØ�K‰K˜Õð r   c                óž   — | j                   j                  }| j                  }	 	  |«       }	 ||= Œ# t        $ r Y y w xY w# t        $ r Y Œw xY wr   )rS   ÚpoprU   Ú
IndexErrorrV   )r   r`   Údr/   s       r   r   z$WeakIdKeyDictionary._commit_removals²   se   € ð
 ×$Ñ$×(Ñ(ˆØ�I‰IˆØðÙ“e�ðØ�c�Fð øô ò Ùðûô
 ò Ùðús   ¥1 ­A  ±	=¼=Á 	AÁAc                ó|   — | j                   }| j                  D �cg c]	  }||v sŒ|‘Œ c}| _        d| _        y c c}w ©NF)rU   rS   r\   )r   rb   rW   s      r   Ú_scrub_removalsz#WeakIdKeyDictionary._scrub_removalsÄ   s=   € Ø�I‰IˆØ-1×-CÒ-CÓ!NÑ-C¨ÀqÈAÂv¢!Ð-CÑ!NˆÔØˆ�ùò "Os   ›	9¥9c                óJ   — d| _         | j                  | j                  |«      = y ©NT)r\   rU   rY   ©r   r/   s     r   Ú__delitem__zWeakIdKeyDictionary.__delitem__É   s   € ØˆŒØ�I‰I�d—m‘m CÓ(Ñ)r   c                ó>   — | j                   | j                  |«         S r   )rU   rY   rh   s     r   Ú__getitem__zWeakIdKeyDictionary.__getitem__Í   s   € Ø�y‰y˜Ÿ™ sÓ+Ñ,Ð,r   c                ó¨   — | j                   r| j                  r| j                  «        t        | j                  «      t        | j                  «      z
  S r   )r\   rS   re   ÚlenrU   r=   s    r   Ú__len__zWeakIdKeyDictionary.__len__Ð   s=   € Ø�?Š?˜t×5Ò5ð × Ñ Ô"Ü�4—9‘9‹~¤ D×$:Ñ$:Ó ;Ñ;Ð;r   c                óP   — d| j                   j                  › dt        | «      d›d�S )NÚ<z at z#xÚ>)r1   r%   r,   r=   s    r   Ú__repr__zWeakIdKeyDictionary.__repr__×   s(   € Ø�4—>‘>×*Ñ*Ð+¨4´°4³¸¨}¸AÐ>Ð>r   c                óV   — || j                   | j                  || j                  «      <   y r   )rU   rY   rZ   )r   r/   Úvalues      r   Ú__setitem__zWeakIdKeyDictionary.__setitem__Ú   s   € Ø6;ˆ�	‰	�$—-‘-  T§\¡\Ó2Ò3r   c                óÀ   — t        «       }t        | «      5  | j                  j                  «       D ]  \  }} |«       }|€Œ|||<   Œ 	 d d d «       |S # 1 sw Y   |S xY wr   )r
   r   rU   Úitems)r   Únewr/   rt   Úos        r   ÚcopyzWeakIdKeyDictionary.copyÝ   sY   € Ü!Ó#ˆÜ˜TÕ"Ø"Ÿi™iŸo™oÖ/‘
��UÙ“E�Ø‘=Ø"�C˜’Fñ 0÷ #ð
 ˆ
÷ #ð
 ˆ
ús   –*AÁAÁAc                óæ   — ddl m} | j                  «       }t        | «      5  | j                  j                  «       D ]  \  }} |«       }|€Œ |||«      ||<   Œ 	 d d d «       |S # 1 sw Y   |S xY w)Nr   )Údeepcopy)rz   r|   r1   r   rU   rw   )r   Úmemor|   rx   r/   rt   ry   s          r   Ú__deepcopy__z WeakIdKeyDictionary.__deepcopy__è   sg   € Ý!à�n‰nÓˆÜ˜TÕ"Ø"Ÿi™iŸo™oÖ/‘
��UÙ“E�Ø‘=Ù% e¨TÓ2�C˜’Fñ 0÷ #ð
 ˆ
÷ #ð
 ˆ
ús   ¢*A&ÁA&Á&A0c                óX   — | j                   j                  | j                  |«      |«      S r   )rU   ÚgetrY   ©r   r/   Údefaults      r   r€   zWeakIdKeyDictionary.getó   s    € Ø�y‰y�}‰}˜TŸ]™]¨3Ó/°Ó9Ð9r   c                ó`   — 	 | j                  |«      }|| j                  v S # t        $ r Y yw xY wrd   )rY   Ú	TypeErrorrU   )r   r/   Úwrs      r   Ú__contains__z WeakIdKeyDictionary.__contains__ö   s9   € ð	Ø—‘˜sÓ#ˆBð �T—Y‘YˆÐøô ò 	Ùð	ús   ‚! ¡	-¬-c              #  ó²   K  — t        | «      5  | j                  j                  «       D ]  \  }} |«       }|€Œ||f–— Œ 	 d d d «       y # 1 sw Y   y xY w­wr   ©r   rU   rw   )r   r…   rt   r/   s       r   rw   zWeakIdKeyDictionary.itemsý   sH   è ø€ Ü˜TÕ"Ø!ŸY™YŸ_™_Ö.‘	��EÙ“d�Ø‘?Ø˜u˜*Ó$ñ /÷ #×"Ñ"üs!   ‚AŽ*A¹AÁ	AÁAÁAc              #  óŒ   K  — t        | «      5  | j                  D ]  } |«       }|€Œ|–— Œ 	 d d d «       y # 1 sw Y   y xY w­wr   )r   rU   )r   r…   Úobjs      r   ÚkeyszWeakIdKeyDictionary.keys  s8   è ø€ Ü˜TÕ"Ø—i”i�Ù“d�Ø‘?Ø“Iñ  ÷ #×"Ñ"üs   ‚AŽ8¨8¯	A¸A½Ac              #  óª   K  — t        | «      5  | j                  j                  «       D ]  \  }} |«       €Œ|–— Œ 	 d d d «       y # 1 sw Y   y xY w­wr   rˆ   )r   r…   rt   s      r   ÚvalueszWeakIdKeyDictionary.values  s?   è ø€ Ü˜TÕ"Ø!ŸY™YŸ_™_Ö.‘	��EÙ“4Ñ#Ø“Kñ /÷ #×"Ñ"üs    ‚AŽ(A·A¾	AÁAÁAc                ó,   — t        | j                  «      S )az  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.

        )ÚlistrU   r=   s    r   ÚkeyrefszWeakIdKeyDictionary.keyrefs  s   € ô �D—I‘I‹Ðr   c                óh   — d| _         	 | j                  j                  «       \  }} |«       }|�||fS Œ+rg   )r\   rU   Úpopitem)r   r/   rt   ry   s       r   r’   zWeakIdKeyDictionary.popitem  s<   € ØˆŒØØŸ™×*Ñ*Ó,‰JˆC�Ù“ˆAØˆ}Ø˜%�x�ð	 r   c                óh   — d| _          | j                  j                  | j                  |«      g|¢­Ž S rg   )r\   rU   r`   rY   )r   r/   Úargss      r   r`   zWeakIdKeyDictionary.pop(  s,   € ØˆŒàˆt�y‰y�}‰}˜TŸ]™]¨3Ó/Ð7°$Ò7Ð7r   c                ón   — | j                   j                  | j                  || j                  «      |«      S r   )rU   Ú
setdefaultrY   rZ   r�   s      r   r–   zWeakIdKeyDictionary.setdefault-  s-   € Ø�y‰y×#Ñ#Ø�M‰M˜#˜tŸ|™|Ó,¨gó
ð 	
r   c                óð   — | j                   }|�Tt        |d«      s t        i «      |«      }|j                  «       D ]$  \  }}||| j	                  || j
                  «      <   Œ& |r| j                  |«       y y )Nrw   )rU   r7   Útyperw   rY   rZ   r]   )r   r^   Úkwargsrb   r/   rt   s         r   r]   zWeakIdKeyDictionary.update2  sk   € Ø�I‰IˆØÐÜ˜4 Ô)Ø”t˜B“x “~�Ø"Ÿj™jžl‘
��UØ6;��$—-‘-  T§\¡\Ó2Ò3ð +áØ�K‰K˜Õð r   c                ó(   — | j                  |«       | S r   )r]   )r   rB   s     r   Ú__ior__zWeakIdKeyDictionary.__ior__<  s   € Ø�‰�EÔØˆr   c                óˆ   — t        |t        j                  «      r#| j                  «       }|j	                  |«       |S t
        S r   )Ú
isinstanceÚ_collections_abcr   rz   r]   ÚNotImplemented©r   rB   Úcs      r   Ú__or__zWeakIdKeyDictionary.__or__@  s4   € Ü�eÔ-×5Ñ5Ô6Ø—	‘	“ˆAØ�H‰H�UŒOØˆHÜÐr   c                óª   — t        |t        j                  «      r4| j                  «       }|j	                  |«       |j	                  | «       |S t
        S r   )r�   rž   r   r1   r]   rŸ   r    s      r   Ú__ror__zWeakIdKeyDictionary.__ror__G  s@   € Ü�eÔ-×5Ñ5Ô6Ø—‘Ó ˆAØ�H‰H�UŒOØ�H‰H�TŒNØˆHÜÐr   c                óü   — t        |t        «      st        S | j                  «       D ��ci c]  \  }}t	        |«      |“Œ c}}|j                  «       D ��ci c]  \  }}t	        |«      |“Œ c}}k(  S c c}}w c c}}w r   )r�   r   rŸ   rw   r,   )r   rB   rW   Úvs       r   rD   zWeakIdKeyDictionary.__eq__Q  sq   € Ü˜%¤Ô)Ü!Ð!Ø%)§Z¡Z¤\Ô2¡\™T˜Q ”�1“�q‘ \Ò2Ø!&§¡¤ô7
Ù!.™˜˜AŒBˆq‹E�1‰H ò7
ñ 
ð 	
ùÓ2ùó 7
s   ªA2ÁA8r"   )r#   Úint)r#   Ústrr   )r#   Úbool)r%   r&   r'   r	   r   r   re   ri   rk   rn   rr   ru   rz   Ú__copy__r~   r€   r†   rw   r‹   Ú__iter__r�   r�   r’   r`   r–   r]   r›   r¢   r¤   rD   r(   r   r   r
   r
   ™   s�   „ Ø ¨9ô ó0ó$ ó
*ò-ó<ó?ó<òð €Hò	ó:óò%òð €Hò ò
ò ò8ó

ô
 òòòó
r   r
   c                  ó*   — e Zd ZU dZded<   dd„Zd„ Zy)r   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                óˆ   — t        |t        «      st        dt        |«      › d�«      ‚t	        j
                  |«      | _        y ©Nzexpected torch.Tensor, got Ú.)r�   r   ÚAssertionErrorr˜   Úweakrefr   )r   Útensors     r   r   zTensorWeakRef.__init__b  s5   € Ü˜&¤&Ô)Ü Ð#>¼tÀF»|¸nÈAÐ!NÓOÐOÜ—;‘;˜vÓ&ˆ�r   c                óž   — | j                  «       }|€|S t        |t        «      st        dt	        |«      › d�«      ‚|j                  «        |S r®   )r   r�   r   r°   r˜   r4   )r   Úouts     r   r6   zTensorWeakRef.__call__g  sK   € Ø�h‰h‹jˆØˆ;ØˆJÜ˜#œvÔ&Ü Ð#>¼tÀC»y¸kÈÐ!KÓLÐLà×ÑÔØˆ
r   N)r²   r   r#   r$   )r%   r&   r'   Ú__doc__Ú__annotations__r   r6   r(   r   r   r   r   ]  s   … Ùà	Óó'ó
r   r   )Ú
__future__r   Úcollections.abcÚabcrž   r±   r   r   r   Útorchr   ÚWeakRefÚ__all__r   r	   rJ   r
   r   r   r(   r   r   Ú<module>r½      ss   ðå "å *Û ß 3Ý å ð €ò€÷%ñ %ôd'�—‘ô 'ôX�7—;‘;ô ôD}
˜.ô }
ðB .Ð ÷ò r   