
    sg
                    H   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y)z 
Python polyfills for itertools
    )annotationsN)IterableIteratorTypeVar   )substitute_in_graph)chainchain_from_iterableislicetee_TT)is_embedded_typec               '  2   K   | D ]  }|E d {     y 7 wN )	iterablesiterables     T/var/www/html/venv/lib/python3.12/site-packages/torch/_dynamo/polyfills/itertools.pyr	   r	      s!      s   c               &    t        j                  |  S r   )	itertoolsr	   )r   s    r   r
   r
      s    ??H%%    c             '    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(  s| ||z  } y t        t        ||            }	|}t        |	|       D ]  \  }}||k(  s| ||z  } y w)Nr      zGIndices for islice() must be None or an integer: 0 <= x <= sys.maxsize.)	slicestartstopstep
ValueError	enumeraterangemaxzip)
r   argssr   r   r   next_iielementindicess
             r   r   r   (   s     tAAaggE66D1AFFDqyT%$(tqyU
 	
 | #H- 	JAwF{$	
 E4()gx0 	JAwF{$	s   A?C	:C	=C	c               n    t        |       d d gdfdt        fdt        |      D              S )Nc              3  v   K   	 	 | d   t              | d<   d d g| d<   | \  }} | $# t        $ r Y y w xY ww)Nr   r   )nextStopIteration)linkvalueiterators     r   _teeztee.<locals>._teeJ   sX     	7?"8nDG#TlDG"t   		s   9%* 	6969c              3  .   K   | ]  }         y wr   r   ).0_r0   shared_links     r   	<genexpr>ztee.<locals>.<genexpr>U   s     5qk"5s   )returnIterator[_T])itertupler    )r   nr0   r/   r4   s     @@@r   r   r   E   s1    H~H,K	 5E!H555r   )r   Iterable[_T]r6   r7   )r   zIterable[Iterable[_T]]r6   r7   )r   r;   r#   z
int | Noner6   r7   )r   )r   r;   r:   intr6   ztuple[Iterator[_T], ...])__doc__
__future__r   r   typingr   r   r   
decoratorsr   __all__r   r	   from_iterabler
   r   r   r   r   r   <module>rC      s    #  . . , T] Y__t< =
 Y__223& 4& *  Y%%= >8 Y]]#6 $6r   