
    Vh[                       U d Z ddlmZ ddlZddlZddlmZmZmZm	Z	 ddl
mZ ddlmZ erddlmZmZ g d	Z e	d
      Z e	d      Zeegef   Zded<    e	d      Z e	d      Z eej2                  d      d#d       Z eej2                  j4                        d$d       Zee_         eej8                  d      d%d       Z eej:                  d      d&d       Z eej<                  d      d'd       Zej>                  dk\  r! eej@                  d      d(d       Z edgz  Z eejB                        d)d*d       Z!edd	 	 	 	 	 d+d       Z"e	 	 	 	 	 	 d,d       Z"edd	 	 	 	 	 	 	 d-d       Z"e	 	 	 	 	 	 	 	 	 	 d.d        Z"edd	 	 	 	 	 	 	 	 	 	 	 d/d!       Z" eejD                  d      dd	 	 	 	 	 d0d"       Z"y)1z 
Python polyfills for itertools
    )annotationsN)CallableoverloadTYPE_CHECKINGTypeVar)	TypeAlias   )substitute_in_graph)IterableIterator)chainchain_from_iterablecompress	dropwhileisliceteezip_longest_T_Ur   
_Predicate_T1_T2T)is_embedded_typec               '  2   K   | D ]  }|E d {     y 7 wN )	iterablesiterables     Q/home/dcms/DCMS/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               (    d t        | |      D        S )Nc              3  ,   K   | ]  \  }}|s	|  y wr   r   ).0datumselectors      r   	<genexpr>zcompress.<locals>.<genexpr>7   s     JoeXEJs   
)zip)data	selectorss     r   r   r   5   s    JT9)=JJr"   c             #  d   K   t        |      }|D ]  } | |      r|  n |E d {    y 7 wr   )iter)	predicater   iteratorxs       r   r   r   ;   s:      H~H |G
 s   00.0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maxr)   )
r   argssr4   r5   r6   next_iielementindicess
             r   r   r   I   s     tAAaggE66D1AFFDqyT%$(tqyU
 	
 | #H- 	JAwF{$	
 E4()gx0 	JAwF{$	s   A?C	:C	=C	)   
   c             #  <   K   d }d}| D ]  }|rd}n||f |} y w)NTFr   )r   afirstbs       r   pairwiserG   h   s5      	Ad
A	s   rG   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)Nr2   r   )nextStopIteration)linkvaluer/   s     r   _teeztee.<locals>._tee|   sX     	7?"8nDG#TlDG"t   		s   9%* 	6969c              3  .   K   | ]  }         y wr   r   )r%   _rN   shared_links     r   r(   ztee.<locals>.<genexpr>   s     5qk"5s   )returnIterator[_T])r-   tupler9   )r   nrN   r/   rQ   s     @@@r   r   r   w   s1    H~H,K	 5E!H555r"   .)	fillvaluec                   y r   r   )iter1rV   s     r   r   r      s     r"   c                    y r   r   )rX   iter2s     r   r   r      s    
 /2r"   c                   y r   r   )rX   rZ   rV   s      r   r   r      s     +.r"   c                    y r   r   )rX   rZ   iter3r   s       r   r   r      s     '*r"   c                   y r   r   )rX   rZ   r]   rV   r   s        r   r   r      s     %(r"   c              '  @  K   t        t        t        |            }t        |      }|sy 	 g }t	        |      D ]"  \  }}	 t        |      }|j                  |       $ t        |       @# t        $ r' |dz  }|sY  y t        j                  |       ||<   | }Y Pw xY ww)Nr2   )listmapr-   lenr8   rJ   rK   r!   repeatappendrT   )rV   r   	iterators
num_activevaluesr>   r/   rM   s           r   r   r      s      Sy)*IYJ
$Y/ 		!KAx"X MM% 		! Fm 
 ! "a
!(//	:	!!"s4   <BA+
!B+B;B>BBBB)r   Iterable[_T]rR   rS   )r   zIterable[Iterable[_T]]rR   rS   )r*   rh   r+   zIterable[_U]rR   rS   )r.   z_Predicate[_T]r   rh   rR   rS   )r   rh   r;   z
int | NonerR   rS   )r   rh   rR   zIterator[tuple[_T, _T]])r	   )r   rh   rU   intrR   ztuple[Iterator[_T], ...])rX   Iterable[_T1]rV   r   rR   zIterator[tuple[_T1]])rX   rj   rZ   Iterable[_T2]rR   z'Iterator[tuple[_T1 | None, _T2 | None]])rX   rj   rZ   rk   rV   r   rR   z#Iterator[tuple[_T1 | _U, _T2 | _U]])
rX   rh   rZ   rh   r]   rh   r   rh   rR   zIterator[tuple[_T | None, ...]])rX   rh   rZ   rh   r]   rh   r   rh   rV   r   rR   Iterator[tuple[_T | _U, ...]])r   rh   rV   r   rR   rl   )#__doc__
__future__r   r!   systypingr   r   r   r   typing_extensionsr   
decoratorsr
   collections.abcr   r   __all__r   r   objectr   __annotations__r   r   r   from_iterabler   r   r   r   version_inforG   r   r   r   r"   r   <module>ry      s   #  
 = = ' , 2 T]T] "v.
I .enen Y__t< =
 Y__223& 4& *  Y''$?K @K
 Y((4@	 A	 Y%%= >8 w++dC D 
|G Y]]#6 $6$ 

 	 	
  
 
222 -	2 
2 
 ...
 . ). 
. 
*** *
 * %* 
* 
 ((( (
 ( ( #( 
( Y**TB  # Cr"   