
    9i|                       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j        d          dFd            Z eej        d          	 dGdddHd            Z eej        j                  dId            Zee_         eej        d          dJd#            Z eej        d          dKd$            Z eej        d          dLd'            Z eej         d          dMd)            Z  eej!        d          dNd,            Z! eej"        d          dOd.            Z" eej#                  dPdQd2            Z#e	d3d4dRd9            Z$e	dSd=            Z$e	d3d4dTd?            Z$e	dUdB            Z$e	d3d4dVdD            Z$ eej$        d          dd4dWdE            Z$dS )Xz 
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_type	iterablesIterable[_T]returnIterator[_T]c               '  $   K   | D ]
}|E d {V  d S N )r   iterables     T/var/www/icac/venv/lib/python3.11/site-packages/torch/_dynamo/polyfills/itertools.pyr   r   *   s:             )initialr&   func Optional[Callable[[_T, _T], _T]]r)   Optional[_T]c               d    t          |           }t          j        dfd} ||          S )Niteratorr"   r!   c              3     K   }|"	 t          |           }n# t          $ r Y d S w xY w|V  | D ]} ||          }|V  d S r$   nextStopIteration)r.   totalelementr*   r)   s      r'   _accumulatezaccumulate.<locals>._accumulate=   s      =X      	 	GD((EKKKK	 	s    
''r.   r"   r!   r"   )iteroperatoradd)r&   r*   r)   r.   r5   s    ``  r'   r   r   1   sR     H~~H||       ;x   r(   Iterable[Iterable[_T]]c             #  $   K   | D ]
}|E d {V  d S r$   r%   )r&   its     r'   r   r   M   s4      
    r(   data	selectorsIterable[_U]c               6    d t          | |          D             S )Nc              3  $   K   | ]\  }}||V  d S r$   r%   ).0datumselectors      r'   	<genexpr>zcompress.<locals>.<genexpr>\   s+      JJoeXJEJJJJJJr(   )zip)r=   r>   s     r'   r   r   Z   s     JJT9)=)=JJJJr(   c                D     t                     }d fd} ||          S )Nr.   r"   r!   c              3  j   K   g }D ]}|V  |                     |           |r|D ]}|V  |d S d S r$   )append)r.   savedr4   r&   s      r'   _cyclezcycle.<locals>._cycled   sy       	" 	"GMMMLL!!!! 	     	 	 	 	 	r(   r6   r7   )r&   r.   rK   s   `  r'   r   r   `   s>    H~~H      6(r(   	predicate_Predicate[_T]c             #  d   K   t          |          }|D ]} | |          s|V   n|E d {V  d S r$   rL   )rM   r&   r.   xs       r'   r   r   r   se       H~~H  y|| 	GGGE	 r(   functionc                    t          |          } t          t          j        |          S t           fd|          S )Nc                     |            S r$   r%   )rP   rQ   s    r'   <lambda>zfilterfalse.<locals>.<lambda>   s    HHQKK r(   )r7   filterr8   not_)rQ   r&   r<   s   `  r'   r   r      s@    	hBhmR(((////444r(   args
int | Nonec             '    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    r	|V  ||z  }d S t          t          ||                    }	|}t          |	|           D ]\  }}||k    r	|V  ||z  }d S )Nr      zGIndices for islice() must be None or an integer: 0 <= x <= sys.maxsize.)	slicestartstopstep
ValueError	enumeraterangemaxrF   )
r&   rW   sr\   r]   r^   next_iir4   indicess
             r'   r   r      s     tAAAagE6D11AFDqyyT%$((tqyyU
 
 	
 | #H-- 	 	JAwF{{$	 	
 E4(())gx00 	 	JAwF{{$	 	r(   Iterator[tuple[_T, _T]]c             #  6   K   d }d}| D ]}|rd}n||fV  |}d S )NTFr%   )r&   afirstbs       r'   r   r      sL      AE   	EEQ$JJJ r(   ninttuple[Iterator[_T], ...]c                   t          |           d d gdfdt          fdt          |          D                       S )Nr!   r"   c              3     K   	 	 | d         t                    | d<   d d g| d<   | \  }} |V  +# t          $ r Y d S w xY w)NTrZ   r   r0   )linkvaluer.   s     r'   _teeztee.<locals>._tee   sq      	7?"8nnDG#TlDG"t  	 	 	FF	s   ,1 
??c              3  .   K   | ]}           V  d S r$   r%   )rB   _rs   shared_links     r'   rE   ztee.<locals>.<genexpr>   s-      55qk""555555r(   )r!   r"   )r7   tuplera   )r&   rl   rs   r.   rv   s     @@@r'   r   r      se    H~~H,K	 	 	 	 	 	 55555E!HH555555r(   .)	fillvalueiter1Iterable[_T1]rx   Iterator[tuple[_T1]]c                  d S r$   r%   )ry   rx   s     r'   r   r      s	     3r(   iter2Iterable[_T2]'Iterator[tuple[_T1 | None, _T2 | None]]c                   d S r$   r%   )ry   r}   s     r'   r   r      s	     /2cr(   #Iterator[tuple[_T1 | _U, _T2 | _U]]c                  d S r$   r%   )ry   r}   rx   s      r'   r   r      s	     +.#r(   iter3Iterator[tuple[_T | None, ...]]c                   d S r$   r%   )ry   r}   r   r   s       r'   r   r      s	     '*cr(   Iterator[tuple[_T | _U, ...]]c                  d S r$   r%   )ry   r}   r   rx   r   s        r'   r   r      s	     %(Cr(   c              '  x  K   t          t          t          |                    }t          |          }|sd S 	 g }t	          |          D ]_\  }}	 t          |          }n4# t          $ r' |dz  }|sY  d S t          j        |           ||<   | }Y nw xY w|	                    |           `t          |          V  )NTrZ   )listmapr7   lenr`   r1   r2   	itertoolsrepeatrI   rw   )rx   r   	iterators
num_activevaluesre   r.   rr   s           r'   r   r      s       Sy))**IYJ $Y// 		! 		!KAx"X  " " "a
! FFF(/	::	!!" MM%    Fmms   A  B5BB)r   r    r!   r"   r$   )r&   r    r*   r+   r)   r,   r!   r"   )r&   r:   r!   r"   )r=   r    r>   r?   r!   r"   )r&   r    r!   r"   )rM   rN   r&   r    r!   r"   )rQ   rN   r&   r    r!   r"   )r&   r    rW   rX   r!   r"   )r&   r    r!   rg   )r
   )r&   r    rl   rm   r!   rn   )ry   rz   rx   r   r!   r{   )ry   rz   r}   r~   r!   r   )ry   rz   r}   r~   rx   r   r!   r   )
ry   r    r}   r    r   r    r   r    r!   r   )ry   r    r}   r    r   r    r   r    rx   r   r!   r   )r   r    rx   r   r!   r   )%__doc__
__future__r   r   r8   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%   r(   r'   <module>r      sY     # " " " " "      $ $ $ $ $ $ H H H H H H H H H H H H H H , , , , , ,  322222222   WT]]WT]] "v.
 . . . .genngenn Y_t<<<   =< Y)DAAA .2! !	! ! ! ! ! BA!6 Y_233   43 *  Y'$???K K K @?K
 Y_t<<<   =<" Y(4@@@	 	 	 A@	 Y*TBBB5 5 5 CB5 Y%===   >=8 Y'$???   @? Y]##6 6 6 6 $#6$ 
 	     
 
2 2 2 
2 
 . . . . . 
. 
* * * 
* 
 ( ( ( ( ( 
( Y*TBBB      CB  r(   