
    9jQ&                        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 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j0                  d      d+d       Z eej2                  d      	 d,dd	 	 	 	 	 	 	 d-d       Z eej0                  j4                        d.d       Zee_         eej8                  d      d/d       Z eej:                  d      d0d       Z eej<                  d      d1d       Z eej>                  d      d1d       Ze	 	 	 	 	 	 d2d       Z e	 	 	 	 	 	 d3d       Z e	 	 	 	 	 	 d4d       Z e	 	 	 	 	 	 d5d       Z  eej@                  d      d6d       Z  eejB                  d      d7d       Z! eejD                  d      d8d        Z" eejF                  d      d9d!       Z# eejH                        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jJ                  d      dd$	 	 	 	 	 dAd*       Z%y)Bz 
Python polyfills for itertools
    )annotationsN)Callable)overloadTYPE_CHECKING	TypeAliasTypeVar   )substitute_in_graph)IterableIterator)
accumulatechainchain_from_iterablecompresscycle	dropwhilefilterfalseislicepairwisestarmap	takewhileteezip_longest_T_Ur   
_Predicate_T1_T2T)is_embedded_typec               '  2   K   | D ]  }|E d {     y 7 wN )	iterablesiterables     a/media/conek/DATA/Code/OCR/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]returnr3   )iteroperatoradd)r$   r0   r'   r-   r1   s    ``  r%   r   r   3   s.     H~H||| x      c             #  2   K   | D ]  }|E d {     y 7 wr!   r"   )r$   its     r%   r   r   O   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   \   s    JT9)=JJr8   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>._cyclef   sJ      	"GMLL!	"    s   .44r2   )r5   )r$   r-   rH   s   `  r%   r   r   b   s    H~H	 (r8   c             #     K   t        |       s"t        dt        |       j                   d      t	        |      }|D ]  } | |      r|  n |E d {    y 7 wN'z' object is not callable)callable	TypeErrortype__name__r5   )	predicater$   r-   xs       r%   r   r   u   sb      I!DO4455MNOOH~H |G
 s   AA	AAAc             #     K   t        |       s"t        dt        |       j                   d      |D ]  } | |      s y |  y wrJ   rL   rM   rN   rO   )rP   r$   rQ   s      r%   r   r      sN      I!DO4455MNOO |s   AAc                    y r!   r"   functionr$   s     r%   r   r          
  r8   c                    y r!   r"   rU   s     r%   r   r      rW   r8   c                    y r!   r"   rU   s     r%   r   r      rW   r8   c                    y r!   r"   rU   s     r%   r   r      rW   r8   c             #     K   t        |       s"t        dt        |       j                   d      |D ]	  } | |   y wrJ   rS   )rV   r$   argss      r%   r   r      sI      H!DN3344LMNN os   =?c               p     t        |      } t        t        j                  |      S t         fd|      S )Nc                     |        S r!   r"   )rQ   rV   s    r%   <lambda>zfilterfalse.<locals>.<lambda>   s    HQK r8   )r5   filterr6   not_)rV   r$   r:   s   `  r%   r   r      s1    	hBhmmR((/44r8   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maxrA   )
r$   r\   sre   rf   rg   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)Nrc   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=   _rx   shared_links     r%   r@   ztee.<locals>.<genexpr>  s     5qk"5s   )r4   r3   )r5   tuplerj   )r$   nrx   r-   r{   s     @@@r%   r   r      s1    H~H,K	 5E!H555r8   .)	fillvaluec                   y r!   r"   )iter1r~   s     r%   r   r     s     r8   c                    y r!   r"   )r   iter2s     r%   r   r     s     /2r8   c                   y r!   r"   )r   r   r~   s      r%   r   r     s     +.r8   c                    y r!   r"   )r   r   iter3r#   s       r%   r   r   "  s     '*r8   c                   y r!   r"   )r   r   r   r~   r#   s        r%   r   r   -  s     %(r8   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)Nrc   )listmapr5   lenri   r+   r,   	itertoolsrepeatrF   r|   )r~   r#   	iterators
num_activevaluesrn   r-   rw   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]r4   r3   r!   )r$   r   r0   zCallable[[_T, _T], _T] | Noner'   z	_T | Noner4   r3   )r$   zIterable[Iterable[_T]]r4   r3   )rB   r   rC   zIterable[_U]r4   r3   )r$   r   r4   r3   )rP   _Predicate[_T]r$   r   r4   r3   )rV   zCallable[[], _U]r$   zIterable[tuple[()]]r4   itertools.starmap[_U])rV   zCallable[[_T], _U]r$   zIterable[tuple[_T]]r4   r   )rV   zCallable[[_T, _T1], _U]r$   zIterable[tuple[_T, _T1]]r4   r   )rV   zCallable[[_T, _T1, _T2], _U]r$   zIterable[tuple[_T, _T1, _T2]]r4   r   )rV   zCallable[..., _T]r$   r   r4   r   )rV   r   r$   r   r4   r3   )r$   r   r\   z
int | Noner4   r3   )r$   r   r4   zIterator[tuple[_T, _T]])r	   )r$   r   r}   intr4   ztuple[Iterator[_T], ...])r   Iterable[_T1]r~   r   r4   zIterator[tuple[_T1]])r   r   r   Iterable[_T2]r4   z'Iterator[tuple[_T1 | None, _T2 | None]])r   r   r   r   r~   r   r4   z#Iterator[tuple[_T1 | _U, _T2 | _U]])
r   r   r   r   r   r   r#   r   r4   zIterator[tuple[_T | None, ...]])r   r   r   r   r   r   r#   r   r~   r   r4   Iterator[tuple[_T | _U, ...]])r#   r   r~   r   r4   r   )&__doc__
__future__r   r   r6   collections.abcr   typingr   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"   r8   r%   <module>r      sb   #   $ > > , 2" T]T] "v.
I .enen Y__t< = Y))DA +/! 	!!
'! 	!
 ! B!6 Y__223 4 *  Y''$?K @K
 Y__t< =$ Y((4@ A Y((4@ A 
  !  	  
  
   !  	  
  
 % &  	  
  
 * +  	  
  Y&&> ? Y**TB5 C5 Y%%= >8 Y''$? @ Y]]#6 $6$ 
 	 	
  
 
222 -	2 
2 
 ...
 . ). 
. 
*** *
 * %* 
* 
 ((( (
 ( ( #( 
( Y**TB  # Cr8   