
    קg
                    N   d Z ddlmZ ddlZddlmZmZmZ ddlm	Z	 g dZ
 ed          Z e	ej        d	
          dd            Z e	ej        j                  dd            Zee_         e	ej        d	
          dd            Z e	ej                  ddd            ZdS )z 
Python polyfills for itertools
    )annotationsN)IterableIteratorTypeVar   )substitute_in_graph)chainchain_from_iterableislicetee_TT)is_embedded_type	iterablesIterable[_T]returnIterator[_T]c               '  $   K   | D ]
}|E d {V  d S N )r   iterables     ]/var/www/html/ai-engine/env/lib/python3.11/site-packages/torch/_dynamo/polyfills/itertools.pyr	   r	      s:             r   Iterable[Iterable[_T]]c                   t          j        |  S r   )	itertoolsr	   )r   s    r   r
   r
      s    ?H%%r   args
int | Nonec             '    K   t          | }|j        dn|j        }|j        }|j        dn|j        }|dk     s||dk     s|dk    rt	          d          |(|}t          |           D ]\  }}||k    r	|V  ||z  }d S t          t          ||                    }	|}t          |	|           D ]\  }}||k    r	|V  ||z  }d S )Nr      zGIndices for islice() must be None or an integer: 0 <= x <= sys.maxsize.)	slicestartstopstep
ValueError	enumeraterangemaxzip)
r   r   sr!   r"   r#   next_iielementindicess
             r   r   r   (   s     tAAAagE6D11AFDqyyT%$((tqyyU
 
 	
 | #H-- 	 	JAwF{{$	 	
 E4(())gx00 	 	JAwF{{$	 	r   ninttuple[Iterator[_T], ...]c                   t          |           d d gdfdt          fdt          |          D                       S )Nr   r   c              3     K   	 	 | d         t                    | d<   d d g| d<   | \  }} |V  +# t          $ r Y d S w xY w)NTr   r   )nextStopIteration)linkvalueiterators     r   _teeztee.<locals>._teeJ   sq      	7?"8nnDG#TlDG"t  	 	 	FF	s   ,1 
??c              3  .   K   | ]}           V  d S r   r   ).0_r8   shared_links     r   	<genexpr>ztee.<locals>.<genexpr>U   s-      55qk""555555r   )r   r   )itertupler&   )r   r.   r8   r7   r<   s     @@@r   r   r   E   se    H~~H,K	 	 	 	 	 	 55555E!HH555555r   )r   r   r   r   )r   r   r   r   )r   r   r   r   r   r   )r   )r   r   r.   r/   r   r0   )__doc__
__future__r   r   typingr   r   r   
decoratorsr   __all__r   r	   from_iterabler
   r   r   r   r   r   <module>rF      s^    # " " " " "     . . . . . . . . . . , , , , , ,   WT]] Y_t<<<   =<
 Y_233& & & 43& *  Y%===   >=8 Y]##6 6 6 6 $#6 6 6r   