
    %Vji/                       d Z ddlmZ ddlZddlZddlZddlmZmZm	Z	 ddl
mZ erddlmZ g dZ e	d	          Z eej        d
          dd            Z eej        d
          dd            Z eej        d
          dd d            Z eej        d
          dd!d            Z G d d          Z G d d          ZefdZdS )"z
Python polyfills for builtins
    )annotationsN)CallableTYPE_CHECKINGTypeVar   )substitute_in_graph)Iterable)allany	enumeratesum_TT)can_constant_fold_throughiterableIterable[object]returnboolc                   | D ]}|s dS dS )NFT r   elems     Z/root/voice-cloning/.venv/lib/python3.11/site-packages/torch/_dynamo/polyfills/builtins.pyr
   r
      s*       	55	4    c                   | D ]}|r dS dS )NTFr   r   s     r   r   r   &   s*       	44	5r   )is_embedded_typeIterable[_T]startintIterable[tuple[int, _T]]c              #     K   t          |t                    s$t          t          |          j        d          | D ]}||fV  |dz  }d S )Nz+ object cannot be interpreted as an integer   )
isinstancer   	TypeErrortype__name__)r   r   xs      r   r   r   .   sr      eS!! 
E{{#RRR
 
 	
   Qh
 r   c               B    t          j        t          j        | |          S N)	functoolsreduceoperatoradd)r   r   s     r   r   r   :   s    HL(E:::r   c                       e Zd Zd Zd Zd ZdS )_CallableIteratorc                "    || _         || _        d S r(   )fnsentinel)selfr0   r1   s      r   __init__z_CallableIterator.__init__@   s     r   c                    | S r(   r   )r2   s    r   __iter__z_CallableIterator.__iter__D   s    r   c                R    |                                  }|| j        k    rt          |S r(   )r0   r1   StopIteration)r2   rs     r   __next__z_CallableIterator.__next__G   s-     GGII  r   N)r%   
__module____qualname__r3   r5   r9   r   r   r   r.   r.   ?   sA        ! ! !  
 
 
 
 
r   r.   c                      e Zd ZdS )_SENTINEL_MISSINGN)r%   r:   r;   r   r   r   r=   r=   T   s        Dr   r=   c                  |t           u r| }t          |d          rF|                                }t          |d          r|S t          dt	          |           d          t          |d          rd } ||          S t          dt	          |           d          | }t          |t                    st          d          t          ||          S )Nr5   r9   'z' object is not iterable__getitem__c              3  l   K   d}	 	 |                      |          V  |dz  }n# t          $ r Y d S w xY w0)Nr   Tr!   )r@   
IndexError)r   is     r   sequence_protocolz iter_.<locals>.sequence_protocolg   sa      &22155555Q%   	s   $ 
22z iter(v, w): v must be a callable)r=   hasattrr5   r#   r$   r"   r   r.   )fn_or_iterabler1   r   iteratorrD   r0   s         r   iter_rH   Y   s     $$$!8Z(( 	N((**Hx,, N LDNN L L LMMM8]++ 	/   %$X...DDNNDDDEEE "h'' 	@>??? X...r   )r   r   r   r   )r   )r   r   r   r   r   r   )r   r   r   r   r   r   )__doc__
__future__r   builtinsr)   r+   typingr   r   r   
decoratorsr   collections.abcr	   __all__r   r
   r   r   r   r.   r=   rH   r   r   r   <module>rP      s    # " " " " "       3 3 3 3 3 3 3 3 3 3 , , , , , ,  )((((((   WT]] X\TBBB   CB X\TBBB   CB X'$???    @? X\TBBB; ; ; ; CB;       *	 	 	 	 	 	 	 	
 $5 !/ !/ !/ !/ !/ !/r   