
    i|                        U d Z ddlmZ ddlZddlZddlmZ ddlmZm	Z	m
Z
mZ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j4                  d      	 d&dd	 	 	 	 	 	 	 d'd       Z eej2                  j6                        d(d       Zee_         eej:                  d      d)d       Z eej<                  d      d*d       Z 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/d0d       Z#e	dd	 	 	 	 	 d1d       Z$e		 	 	 	 	 	 d2d        Z$e	dd	 	 	 	 	 	 	 d3d!       Z$e		 	 	 	 	 	 	 	 	 	 d4d"       Z$e	dd	 	 	 	 	 	 	 	 	 	 	 d5d#       Z$ eejH                  d      dd	 	 	 	 	 d6d$       Z$y)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               '  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]returnr2   )iteroperatoradd)r#   r/   r&   r,   r0   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Jr7   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r1   r4   )r#   r,   rG   s   `  r$   r   r   `   s    H~H (r7   c             #  d   K   t        |      }|D ]  } | |      r|  n |E d {    y 7 wr    rH   )	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!   )rK   functions    r$   <lambda>zfilterfalse.<locals>.<lambda>   s    HQK r7   )r4   filterr5   not_)rN   r#   r9   s   `  r$   r   r      s1    	hBhmmR((/44r7   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srU   rV   rW   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$   r   r      s5     AE EQ$Js   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)NrS   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<   _ri   shared_links     r$   r?   ztee.<locals>.<genexpr>   s     5qk"5s   )r3   r2   )r4   tuplerZ   )r#   nri   r,   rl   s     @@@r$   r   r      s1    H~H,K	 5E!H555r7   .)	fillvaluec                   y r    r!   )iter1ro   s     r$   r   r      s     r7   c                    y r    r!   )rq   iter2s     r$   r   r      s     /2r7   c                   y r    r!   )rq   rs   ro   s      r$   r   r      s     +.r7   c                    y r    r!   )rq   rs   iter3r"   s       r$   r   r      s     '*r7   c                   y r    r!   )rq   rs   rv   ro   r"   s        r$   r   r      s     %(r7   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)NrS   )listmapr4   lenrY   r*   r+   	itertoolsrepeatrE   rm   )ro   r"   	iterators
num_activevaluesr_   r,   rh   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]r3   r2   r    )r#   r   r/   z Optional[Callable[[_T, _T], _T]]r&   zOptional[_T]r3   r2   )r#   zIterable[Iterable[_T]]r3   r2   )rA   r   rB   zIterable[_U]r3   r2   )r#   r   r3   r2   )rJ   _Predicate[_T]r#   r   r3   r2   )rN   r   r#   r   r3   r2   )r#   r   r\   z
int | Noner3   r2   )r#   r   r3   zIterator[tuple[_T, _T]])r
   )r#   r   rn   intr3   ztuple[Iterator[_T], ...])rq   Iterable[_T1]ro   r   r3   zIterator[tuple[_T1]])rq   r   rs   Iterable[_T2]r3   z'Iterator[tuple[_T1 | None, _T2 | None]])rq   r   rs   r   ro   r   r3   z#Iterator[tuple[_T1 | _U, _T2 | _U]])
rq   r   rs   r   rv   r   r"   r   r3   zIterator[tuple[_T | None, ...]])rq   r   rs   r   rv   r   r"   r   ro   r   r3   Iterator[tuple[_T | _U, ...]])r"   r   ro   r   r3   r   )%__doc__
__future__r   r|   r5   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!   r7   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r7   