
    ȅi|                    "   % S r SSKJr  SSKrSSKrSSKJr  SSKJrJ	r	J
r
JrJr  SSKJr  \
(       a  SSKJrJr  / S	Qr\" S
5      r\" S5      r\\/\4   rS\S'   \" S5      r\" S5      r\" \R2                  SS9S%S j5       r\" \R4                  SS9 S&SS.       S'S jjj5       r\" \R2                  R6                  5      S(S j5       r\\l        \" \R:                  SS9S)S j5       r\" \R<                  SS9S*S j5       r\" \R>                  SS9S+S j5       r\" \R@                  SS9S,S j5       r \" \RB                  SS9S-S j5       r!\" \RD                  SS9S.S j5       r"\" \RF                  5      S/S0S jj5       r#\	SS.     S1S jj5       r$\	      S2S  j5       r$\	SS.       S3S! jj5       r$\	          S4S" j5       r$\	SS.           S5S# jj5       r$\" \RH                  SS9SS.     S6S$ jj5       r$g)7z 
Python polyfills for itertools
    )annotationsN)Callable)OptionaloverloadTYPE_CHECKING	TypeAliasTypeVar   )substitute_in_graph)IterableIterator)
accumulatechainchain_from_iterablecompresscycle	dropwhilefilterfalseisliceteezip_longestpairwise_T_Ur   
_Predicate_T1_T2T)is_embedded_typec               '  6   #    U  H  nU S h  vN   M     g  N	7fN )	iterablesiterables     [/home/james-whalen/.local/lib/python3.13/site-packages/torch/_dynamo/polyfills/itertools.pyr   r   *   s         
)initialc               d   ^^ [        U 5      nTc  [        R                  mSUU4S jjnU" U5      $ )Nc              3     >#    TnUc   [        U 5      nUv   U  H  nT" X5      nUv   M     g ! [         a     g f = f7fr    nextStopIteration)iteratortotalelementfuncr&   s      r$   _accumulateaccumulate.<locals>._accumulate=   sQ     =X G(EK  	 ! s   ?/ ?
<?<?r,   Iterator[_T]returnr3   )iteroperatoradd)r#   r/   r&   r,   r0   s    ``  r$   r   r   1   s3     H~H|||  x      c             #  6   #    U  H  nU S h  vN   M     g  N	7fr    r!   )r#   its     r$   r   r   M   s     
  r%   c               &    S [        X5       5       $ )Nc              3  <   #    U  H  u  pU(       d  M  Uv   M     g 7fr    r!   ).0datumselectors      r$   	<genexpr>compress.<locals>.<genexpr>\   s     J)=oeEE)=s   	)zip)data	selectorss     r$   r   r   Z   s    JT)=JJr8   c                :   ^  [        T 5      nSU 4S jjnU" U5      $ )Nc              3     >#    / nT H  nUv   UR                  U5        M     U(       a  U H  nUv   M	     U(       a  M  g g 7fr    )append)r,   savedr.   r#   s      r$   _cyclecycle.<locals>._cycled   sA     GMLL!     ! es   <AAr2   r5   )r#   r,   rI   s   `  r$   r   r   `   s    H~H (r8   c             #  r   #    [        U5      nU H  nU " U5      (       a  M  Uv     O   U S h  vN   g  N7fr    rK   )	predicater#   r,   xs       r$   r   r   r   s6      H~H||G 
 s   7757c               t   ^  [        U5      nT c  [        [        R                  U5      $ [        U 4S jU5      $ )Nc                   > T" U 5      (       + $ r    r!   )rN   functions    r$   <lambda>filterfalse.<locals>.<lambda>   s    HQKr8   )r5   filterr6   not_)rQ   r#   r:   s   `  r$   r   r      s1    	hBhmmR((/44r8   c             '    #    [        U6 nUR                  c  SOUR                  nUR                  nUR                  c  SOUR                  nUS:  d  Ub  US:  d  US::  a  [	        S5      eUc&  Un[        U 5       H  u  pxXv:X  d  M  Uv   Xe-  nM     g [        [        X45      5      n	Un[        X5       H  u  pxXv:X  d  M  Uv   Xe-  nM     g 7f)Nr      zGIndices for islice() must be None or an integer: 0 <= x <= sys.maxsize.)	slicestartstopstep
ValueError	enumeraterangemaxrB   )
r#   argssrY   rZ   r[   next_iir.   indicess
             r$   r   r      s     tAAaggE66D1AFFDqyT%$(tqyU
 	
 | #H-JA{ .
 E()g0JA{ 1s   BC	6CCc             #  H   #    S nSnU  H  nU(       a  SnOX4v   UnM     g 7f)NTFr!   )r#   afirstbs       r$   r   r      s-     AEE$J s    "c               t   ^^^ [        U 5      mS S /mSU4S jjm[        UU4S j[        U5       5       5      $ )Nc              3  z   >#      U S   c  [        T5      U S'   S S /U S'   U u  pUv   M%  ! [         a     g f = f7f)NrW   r   r)   )linkvaluer,   s     r$   _teetee.<locals>._tee   sU     	7?"8nDG#TlDG"   		s   ;&+ 
8;8;c              3  4   >#    U  H  nT" T5      v   M     g 7fr    r!   )r=   _rm   shared_links     r$   r@   tee.<locals>.<genexpr>   s     5Hqk""Hs   )r4   r3   )r5   tupler^   )r#   nrm   r,   rq   s     @@@r$   r   r      s1    H~H,K	 5E!H555r8   .)	fillvaluec                  g r    r!   )iter1ru   s     r$   r   r      s     r8   c                   g r    r!   )rw   iter2s     r$   r   r      s     /2r8   c                  g r    r!   )rw   ry   ru   s      r$   r   r      s     +.r8   c                   g r    r!   )rw   ry   iter3r"   s       r$   r   r      s     '*r8   c                  g r    r!   )rw   ry   r|   ru   r"   s        r$   r   r      s     %(r8   c              '  Z  #    [        [        [        U5      5      n[        U5      nU(       d  g  / n[	        U5       H"  u  pV [        U5      nUR                  U5        M$     [        U5      v   MB  ! [         a,    US-  nU(       d     g [        R                  " U 5      X%'   U n NYf = f7f)NrW   )listmapr5   lenr]   r*   r+   	itertoolsrepeatrG   rs   )ru   r"   	iterators
num_activevaluesrc   r,   rl   s           r$   r   r      s      Sy)*IYJ
$Y/KA"X MM%  0 Fm 
 ! "a
!(//	:	!"s6   A B+A2$B+2B(B+B(%B+'B((B+)r"   Iterable[_T]r4   r3   r    )r#   r   r/   z Optional[Callable[[_T, _T], _T]]r&   zOptional[_T]r4   r3   )r#   zIterable[Iterable[_T]]r4   r3   )rC   r   rD   zIterable[_U]r4   r3   )r#   r   r4   r3   )rM   _Predicate[_T]r#   r   r4   r3   )rQ   r   r#   r   r4   r3   )r#   r   r`   z
int | Noner4   r3   )r#   r   r4   zIterator[tuple[_T, _T]])r
   )r#   r   rt   intr4   ztuple[Iterator[_T], ...])rw   Iterable[_T1]ru   r   r4   zIterator[tuple[_T1]])rw   r   ry   Iterable[_T2]r4   z'Iterator[tuple[_T1 | None, _T2 | None]])rw   r   ry   r   ru   r   r4   z#Iterator[tuple[_T1 | _U, _T2 | _U]])
rw   r   ry   r   r|   r   r"   r   r4   zIterator[tuple[_T | None, ...]])rw   r   ry   r   r|   r   r"   r   ru   r   r4   Iterator[tuple[_T | _U, ...]])r"   r   ru   r   r4   r   )%__doc__
__future__r   r   r6   collections.abcr   typingr   r   r   r   r	   
decoratorsr   r   r   __all__r   r   objectr   __annotations__r   r   r   r   from_iterabler   r   r   r   r   r   r   r   r   r!   r8   r$   <module>r      sg   #   $ H H , 2 T]T] "v.
I .enen Y__t< = Y))DA .2! !	!!
*! 	!
 ! B!6 Y__223 4 *  Y''$?K @K
 Y__t< =" Y((4@	 A	 Y**TB5 C5 Y%%= >8 Y''$? @ Y]]#6 $6$ 
 	 	
  
 
222 -	2 
2 
 ...
 . ). 
. 
*** *
 * %* 
* 
 ((( (
 ( ( #( 
( Y**TB  # Cr8   