
    i                    R   U 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	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j6                  d      d'd       Z eej8                  d      	 d(dd	 	 	 	 	 	 	 d)d       Z eej6                  j:                        d*d       Zee_         eej>                  d      d+d       Z eej@                  d      d,d       Z  eejB                  d      d-d       Z! eejD                  d      d.d       Z" eejF                  d      d/d       Z#ejH                  dk\  r! eejJ                  d      d0d       Z%edgz  Z eejL                        d1d2d       Z&e	dd 	 	 	 	 	 d3d!       Z'e		 	 	 	 	 	 d4d"       Z'e	dd 	 	 	 	 	 	 	 d5d#       Z'e		 	 	 	 	 	 	 	 	 	 d6d$       Z'e	dd 	 	 	 	 	 	 	 	 	 	 	 d7d%       Z' eejN                  d      dd 	 	 	 	 	 d8d&       Z'y)9z 
Python polyfills for itertools
    )annotationsN)CallableOptionaloverloadTYPE_CHECKINGTypeVar)	TypeAlias   )substitute_in_graph)IterableIterator)

accumulatechainchain_from_iterablecompresscycle	dropwhilefilterfalseisliceteezip_longest_T_Ur	   
_Predicate_T1_T2T)is_embedded_typec               '  2   K   | D ]  }|E d {     y 7 wN )	iterablesiterables     [/var/www/html/engine/venv/lib/python3.12/site-packages/torch/_dynamo/polyfills/itertools.pyr   r   *   s!         )initialc               ^    t        |       }t        j                  dfd} ||      S )Nc              3  |   K   }|	 t        |       }| | D ]  } ||      }|  y # t        $ r Y y w xY wwr   nextStopIteration)iteratortotalelementfuncr%   s      r#   _accumulatezaccumulate.<locals>._accumulate=   sY     =X  	G(EK		 ! s   <- <	9<9<r+   Iterator[_T]returnr1   )iteroperatoradd)r"   r.   r%   r+   r/   s    ``  r#   r   r   1   s.     H~H||| x      c             #  2   K   | D ]  }|E d {     y 7 wr   r    )r"   its     r#   r   r   M   s!     
  r$   c               (    d t        | |      D        S )Nc              3  ,   K   | ]  \  }}|s	|  y wr   r    ).0datumselectors      r#   	<genexpr>zcompress.<locals>.<genexpr>\   s     JoeXEJs   
)zip)data	selectorss     r#   r   r   Z   s    JT9)=JJr6   c                6     t               }d fd} ||      S )Nc              3  l   K   g }D ]  }| |j                  |        |r|D ]  }|  |ry y wr   )append)r+   savedr-   r"   s      r#   _cyclezcycle.<locals>._cycled   sJ      	"GMLL!	"    s   .44r0   r3   )r"   r+   rF   s   `  r#   r   r   `   s    H~H (r6   c             #  d   K   t        |      }|D ]  } | |      r|  n |E d {    y 7 wr   rG   )	predicater"   r+   xs       r#   r   r   r   s:      H~H |G
 s   00.0c               p     t        |      } t        t        j                  |      S t         fd|      S )Nc                     |        S r   r    )rJ   functions    r#   <lambda>zfilterfalse.<locals>.<lambda>   s    HQK r6   )r3   filterr4   not_)rM   r"   r8   s   `  r#   r   r      s1    	hBhmmR((/44r6   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srT   rU   rV   next_iir-   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             #  <   K   d }d}| D ]  }|rd}n||f |} y w)NTFr    )r"   afirstbs       r#   pairwiserf      s5      	Ad
A	s   rf   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)NrR   r   r(   )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;   _rk   shared_links     r#   r>   ztee.<locals>.<genexpr>   s     5qk"5s   )r2   r1   )r3   tuplerY   )r"   nrk   r+   rn   s     @@@r#   r   r      s1    H~H,K	 5E!H555r6   .)	fillvaluec                   y r   r    )iter1rq   s     r#   r   r      s     r6   c                    y r   r    )rs   iter2s     r#   r   r      s    
 /2r6   c                   y r   r    )rs   ru   rq   s      r#   r   r      s     +.r6   c                    y r   r    )rs   ru   iter3r!   s       r#   r   r      s     '*r6   c                   y r   r    )rs   ru   rx   rq   r!   s        r#   r   r      s     %(r6   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)NrR   )listmapr3   lenrX   r)   r*   	itertoolsrepeatrD   ro   )rq   r!   	iterators
num_activevaluesr^   r+   rj   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]r2   r1   r   )r"   r   r.   z Optional[Callable[[_T, _T], _T]]r%   zOptional[_T]r2   r1   )r"   zIterable[Iterable[_T]]r2   r1   )r@   r   rA   zIterable[_U]r2   r1   )r"   r   r2   r1   )rI   _Predicate[_T]r"   r   r2   r1   )rM   r   r"   r   r2   r1   )r"   r   r[   z
int | Noner2   r1   )r"   r   r2   zIterator[tuple[_T, _T]])r
   )r"   r   rp   intr2   ztuple[Iterator[_T], ...])rs   Iterable[_T1]rq   r   r2   zIterator[tuple[_T1]])rs   r   ru   Iterable[_T2]r2   z'Iterator[tuple[_T1 | None, _T2 | None]])rs   r   ru   r   rq   r   r2   z#Iterator[tuple[_T1 | _U, _T2 | _U]])
rs   r   ru   r   rx   r   r!   r   r2   zIterator[tuple[_T | None, ...]])rs   r   ru   r   rx   r   r!   r   rq   r   r2   Iterator[tuple[_T | _U, ...]])r!   r   rq   r   r2   r   )(__doc__
__future__r   r~   r4   systypingr   r   r   r   r   typing_extensionsr	   
decoratorsr   collections.abcr   r   __all__r   r   objectr   __annotations__r   r   r   r   from_iterabler   r   r   r   r   r   version_inforf   r   r   r    r6   r#   <module>r      s   #   
 G G ' , 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 w++dC D 
|G Y]]#6 $6$ 

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