
    QVji.                        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dS )    )annotationsN)MappingMutableMapping)ref)Tensor)TensorWeakRef	WeakIdRefWeakIdKeyDictionaryWeakTensorKeyDictionaryc                       e Zd Zd Zd Zd ZdS )_IterationGuardc                .    t          |          | _        d S N)r   weakcontainer)selfr   s     J/root/voice-cloning/.venv/lib/python3.11/site-packages/torch/utils/weak.py__init__z_IterationGuard.__init__   s     //    c                f    |                                  }||j                            |            | S r   )r   
_iteratingadd)r   ws     r   	__enter__z_IterationGuard.__enter__#   s3      =LT"""r   c                    |                                  }|4|j        }|                    |            |s|                                 d S d S d S r   )r   r   remove_commit_removals)r   etbr   ss         r   __exit__z_IterationGuard.__exit__)   s_      =AHHTNNN %""$$$$$	 =% %r   N)__name__
__module____qualname__r   r   r!    r   r   r   r      sA        0 0 0  % % % % %r   r   c                  <     e Zd ZdgZd fd	Z fdZd Zd Z xZS )r	   _idNc                t    t          |          | _        t                                          ||           d S r   )idr'   superr   r   keycallback	__class__s      r   r   zWeakIdRef.__init__N   s2     c77h'''''r   c                    t                                                      }t          |d          r|                                 |S N_fix_weakrefr*   __call__hasattrr1   r   rr.   s     r   r3   zWeakIdRef.__call__W   ?    GG1n%% 	NNr   c                    | j         S r   r'   r   s    r   __hash__zWeakIdRef.__hash__^   	    xr   c                B     |             } |            }||||u S | |u S r   r%   r   otherar   s       r   __eq__zWeakIdRef.__eq__a   s6     DFFEGG=Q]6Mu}r   r   	r"   r#   r$   	__slots__r   r3   r;   rA   __classcell__r.   s   @r   r	   r	   K   s{        I( ( ( ( ( (            r   r	   c                  <     e Zd ZdgZd fd	Z fdZd Zd Z xZS )_WeakHashRefr'   Nc                t    t          |          | _        t                                          ||           d S r   )hashr'   r*   r   r+   s      r   r   z_WeakHashRef.__init__z   s2     99h'''''r   c                    t                                                      }t          |d          r|                                 |S r0   r2   r5   s     r   r3   z_WeakHashRef.__call__   r7   r   c                    | j         S r   r9   r:   s    r   r;   z_WeakHashRef.__hash__   r<   r   c                z     |             } |            }|"| t          |          t          |          k    S | |u S r   )rI   r>   s       r   rA   z_WeakHashRef.__eq__   sD     DFFEGG=Q]77d1gg%%u}r   r   rB   rE   s   @r   rG   rG   w   s{        I( ( ( ( ( (            r   rG   c                      e Zd ZdefdZd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZeZd ZddZd Zd Zd ZeZd Zd Zd Zd ZddZddZd Zd Zd Zd ZdS )r
   Nc                    i | _         || _        t          |           fd}|| _        g | _        t                      | _        d| _        ||                     |           d S d S )Nc                     |            }|?|j         r|j                            |            d S 	 |j        | = d S # t          $ r Y d S w xY wd S r   )r   _pending_removalsappenddataKeyError)kselfrefr   s      r   r   z,WeakIdKeyDictionary.__init__.<locals>.remove   sv    799D? *11!44444 IaLLL#     s   ; 
A	A	F)	rR   ref_typer   _removerP   setr   
_dirty_lenupdate)r   dictrV   r   s       r   r   zWeakIdKeyDictionary.__init__   sv    	 !$ii 		 		 		 		 !#%%KK r   c                    | j         j        }| j        }	 	  |            }n# t          $ r Y d S w xY w	 ||= n# t          $ r Y nw xY w3r   )rP   poprR   
IndexErrorrS   )r   r]   dr,   s       r   r   z$WeakIdKeyDictionary._commit_removals   s    
 $(I		cee   cFF   		s   
! 
//7 
AAc                T    | j         fd| j        D             | _        d| _        d S )Nc                    g | ]}|v |	S r%   r%   ).0rT   r_   s     r   
<listcomp>z7WeakIdKeyDictionary._scrub_removals.<locals>.<listcomp>   s    !N!N!NqAvv!vvvr   F)rR   rP   rY   )r   r_   s    @r   _scrub_removalsz#WeakIdKeyDictionary._scrub_removals   s4    I!N!N!N!NT-C!N!N!Nr   c                J    d| _         | j        |                     |          = d S NT)rY   rR   rV   r   r,   s     r   __delitem__zWeakIdKeyDictionary.__delitem__   s%    IdmmC(()))r   c                B    | j         |                     |                   S r   )rR   rV   rg   s     r   __getitem__zWeakIdKeyDictionary.__getitem__   s    ys++,,r   c                    | j         r| j        r|                                  t          | j                  t          | j                  z
  S r   )rY   rP   rd   lenrR   r:   s    r   __len__zWeakIdKeyDictionary.__len__   sH    ? 	#t5 	#   """49~~D$: ; ;;;r   c                D    d| j         j         dt          |           ddS )N<z at z#x>)r.   r"   r)   r:   s    r   __repr__zWeakIdKeyDictionary.__repr__   s)    >4>*>>4>>>>>r   c                L    || j         |                     || j                  <   d S r   )rR   rV   rW   )r   r,   values      r   __setitem__zWeakIdKeyDictionary.__setitem__   s$    6;	$--T\22333r   c                    t                      }t          |           5  | j                                        D ]\  }} |            }||||<   	 d d d            n# 1 swxY w Y   |S r   )r
   r   rR   items)r   newr,   rs   os        r   copyzWeakIdKeyDictionary.copy   s    !##T"" 	# 	#"ioo// # #
UCEE="CF#	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#
 
s   1AA #A c                    ddl m} |                                 }t          |           5  | j                                        D ] \  }} |            }| |||          ||<   !	 d d d            n# 1 swxY w Y   |S )Nr   )deepcopy)ry   r{   r.   r   rR   rv   )r   memor{   rw   r,   rs   rx   s          r   __deepcopy__z WeakIdKeyDictionary.__deepcopy__   s    !!!!!!nnT"" 	3 	3"ioo// 3 3
UCEE=%XeT22CF3	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3
 
s   ;A22A69A6c                ^    | j                             |                     |          |          S r   )rR   getrV   r   r,   defaults      r   r   zWeakIdKeyDictionary.get   s$    y}}T]]3//999r   c                d    	 |                      |          }n# t          $ r Y dS w xY w|| j        v S )NF)rV   	TypeErrorrR   )r   r,   wrs      r   __contains__z WeakIdKeyDictionary.__contains__   sH    	s##BB 	 	 	55	TYs    
&&c              #     K   t          |           5  | j                                        D ]\  }} |            }|||fV  	 d d d            d S # 1 swxY w Y   d S r   r   rR   rv   )r   r   rs   r,   s       r   rv   zWeakIdKeyDictionary.items   s      T"" 	% 	%!Y__.. % %	Ebdd?u*$$$%	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   2AAAc              #     K   t          |           5  | j        D ]} |            }||V  	 d d d            d S # 1 swxY w Y   d S r   )r   rR   )r   r   objs      r   keyszWeakIdKeyDictionary.keys  s      T"" 	 	i  bdd?III	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   ;??c              #     K   t          |           5  | j                                        D ]\  }} |            |V  	 d d d            d S # 1 swxY w Y   d S r   r   )r   r   rs   s      r   valueszWeakIdKeyDictionary.values  s      T"" 	  	 !Y__..    	E244#KKK 	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   .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.

        )listrR   r:   s    r   keyrefszWeakIdKeyDictionary.keyrefs  s     DIr   c                l    d| _         	 | j                                        \  }} |            }|||fS -rf   )rY   rR   popitem)r   r,   rs   rx   s       r   r   zWeakIdKeyDictionary.popitem  sC    	 **,,JCA}%x		 r   c                \    d| _          | j        j        |                     |          g|R  S rf   )rY   rR   r]   rV   )r   r,   argss      r   r]   zWeakIdKeyDictionary.pop'  s1    ty}T]]3//7$7777r   c                j    | j                             |                     || j                  |          S r   )rR   
setdefaultrV   rW   r   s      r   r   zWeakIdKeyDictionary.setdefault+  s1    y##MM#t|,,g
 
 	
r   c                $   | j         }|`t          |d          s t          i           |          }|                                D ]#\  }}|||                     || j                  <   $t          |          r|                     |           d S d S )Nrv   )rR   r4   typerv   rV   rW   rl   rZ   )r   r[   kwargsr_   r,   rs   s         r   rZ   zWeakIdKeyDictionary.update0  s    I4)) &tBxx~~"jjll < <
U6;$--T\2233v;; 	 KK	  	 r   c                0    |                      |           | S r   )rZ   r   r?   s     r   __ior__zWeakIdKeyDictionary.__ior__:  s    Er   c                    t          |t          j                  r+|                                 }|                    |           |S t
          S r   )
isinstance_collections_abcr   ry   rZ   NotImplementedr   r?   cs      r   __or__zWeakIdKeyDictionary.__or__>  s?    e-566 			AHHUOOOHr   c                    t          |t          j                  r@|                                 }|                    |           |                    |            |S t
          S r   )r   r   r   r.   rZ   r   r   s      r   __ror__zWeakIdKeyDictionary.__ror__E  sP    e-566 	  AHHUOOOHHTNNNHr   c                    t          |t                    st          S d |                                 D             d |                                D             k    S )Nc                4    i | ]\  }}t          |          |S r%   r)   rb   rT   vs      r   
<dictcomp>z.WeakIdKeyDictionary.__eq__.<locals>.<dictcomp>R  s$    222TQ1q222r   c                4    i | ]\  }}t          |          |S r%   r   r   s      r   r   z.WeakIdKeyDictionary.__eq__.<locals>.<dictcomp>R  s1     7
 7
 7
ABqEE17
 7
 7
r   )r   r   r   rv   r   s     r   rA   zWeakIdKeyDictionary.__eq__O  sa    %)) 	"!!22TZZ\\222 7
 7
!&7
 7
 7
 
 	
r   r   )r"   r#   r$   r	   r   r   rd   rh   rj   rm   rq   rt   ry   __copy__r}   r   r   rv   r   __iter__r   r   r   r]   r   rZ   r   r   r   rA   r%   r   r   r
   r
      s        9    0  $     
* * *- - -< < <? ? ?< < <   H	 	 	: : : :  % % %   H     
 
 
     8 8 8
 
 
 

             
 
 
 
 
r   r
   c                  ,    e Zd ZU dZded<   d	dZd ZdS )
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   tensorr   c                f    t          |t                    sJ t          j        |          | _        d S r   )r   r   weakrefr   )r   r   s     r   r   zTensorWeakRef.__init__`  s-    &&)))));v&&r   c                    |                                  }||S t          |t                    sJ |                                 |S r   )r   r   r   r1   )r   outs     r   r3   zTensorWeakRef.__call__d  sF    hhjj;J#v&&&&&
r   N)r   r   )r"   r#   r$   __doc____annotations__r   r3   r%   r   r   r   r   [  sK         ' ' ' '    r   r   )
__future__r   collections.abcabcr   r   r   r   r   torchr   WeakRef__all__r   r	   rG   r
   r   r   r%   r   r   <module>r      sv   " " " " " " * * * * * *  3 3 3 3 3 3 3 3               % % % % % % % %d' ' ' ' ' ' ' 'X    7;   D{
 {
 {
 {
 {
. {
 {
 {
~ .          r   