
    BjQ&                       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j        d          dWd            Z eej        d          	 dXdddYd            Z eej        j                  dZd            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d^d-            Z ed_d0            Z ed`d3            Z edad6            Z  eej         d          dbd9            Z  eej!        d          dcd:            Z! eej"        d          ddd=            Z" eej#        d          ded?            Z# eej$                  dfdgdC            Z$edDdEdhdJ            Z%edidN            Z%edDdEdjdP            Z%edkdS            Z%edDdEdldU            Z% eej%        d          ddEdmdV            Z%dS )nz 
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_type	iterablesIterable[_T]returnIterator[_T]c               '  $   K   | D ]
}|E d {V  d S N )r    iterables     d/var/www/html/Carbon-Document/venv/lib/python3.11/site-packages/torch/_dynamo/polyfills/itertools.pyr   r   ,   s:             )initialr'   funcCallable[[_T, _T], _T] | Noner*   	_T | Nonec               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/   r6   s    ``  r(   r   r   3   sR     H~~H||       ;x   r)   Iterable[Iterable[_T]]c             #  $   K   | D ]
}|E d {V  d S r%   r&   )r'   its     r(   r   r   O   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   \   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/   savedr5   r'   s      r(   _cyclezcycle.<locals>._cyclef   sy       	" 	"GMMMLL!!!! 	     	 	 	 	 	r)   r7   )r8   )r'   r/   rL   s   `  r(   r   r   b   s>    H~~H	 	 	 	 	 	 6(r)   	predicate_Predicate[_T]c             #     K   t          |           s%t          dt          |           j         d          t	          |          }|D ]} | |          s|V   n|E d {V  d S N'z' object is not callable)callable	TypeErrortype__name__r8   )rM   r'   r/   xs       r(   r   r   u   s       I PNDOO4NNNOOOH~~H  y|| 	GGGE	 r)   c             #     K   t          |           s%t          dt          |           j         d          |D ]} | |          s d S |V  d S rP   rR   rS   rT   rU   )rM   r'   rV   s      r(   r   r      sw       I PNDOO4NNNOOO  y|| 	EE r)   functionCallable[[], _U]Iterable[tuple[()]]itertools.starmap[_U]c                   d S r%   r&   rY   r'   s     r(   r   r      	    
  Cr)   Callable[[_T], _U]Iterable[tuple[_T]]c                   d S r%   r&   r^   s     r(   r   r      r_   r)   Callable[[_T, _T1], _U]Iterable[tuple[_T, _T1]]c                   d S r%   r&   r^   s     r(   r   r      r_   r)   Callable[[_T, _T1, _T2], _U]Iterable[tuple[_T, _T1, _T2]]c                   d S r%   r&   r^   s     r(   r   r      r_   r)   Callable[..., _T]r   c             #     K   t          |           s%t          dt          |           j         d          |D ]	} | | V  
d S rP   rX   )rY   r'   argss      r(   r   r      sj       H OMDNN3MMMNNN  ho r)   c                    t          |          } t          t          j        |          S t           fd|          S )Nc                     |            S r%   r&   )rV   rY   s    r(   <lambda>zfilterfalse.<locals>.<lambda>   s    HHQKK r)   )r8   filterr9   not_)rY   r'   r=   s   `  r(   r   r      s@    	hBhmR(((////444r)   rk   
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maxrG   )
r'   rk   sru   rv   rw   next_iir5   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)NTrs   r   r1   )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&   )rC   _r   shared_links     r(   rF   ztee.<locals>.<genexpr>  s-      55qk""555555r)   )r"   r#   )r8   tuplerz   )r'   r   r   r/   r   s     @@@r(   r   r      se    H~~H,K	 	 	 	 	 	 55555E!HH555555r)   .)	fillvalueiter1Iterable[_T1]r   Iterator[tuple[_T1]]c                  d S r%   r&   )r   r   s     r(   r   r     s	     3r)   iter2Iterable[_T2]'Iterator[tuple[_T1 | None, _T2 | None]]c                   d S r%   r&   )r   r   s     r(   r   r     s	     /2cr)   #Iterator[tuple[_T1 | _U, _T2 | _U]]c                  d S r%   r&   )r   r   r   s      r(   r   r     s	     +.#r)   iter3Iterator[tuple[_T | None, ...]]c                   d S r%   r&   )r   r   r   r    s       r(   r   r   "  s	     '*cr)   Iterator[tuple[_T | _U, ...]]c                  d S r%   r&   )r   r   r   r   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  )NTrs   )listmapr8   lenry   r2   r3   	itertoolsrepeatrJ   r   )r   r    	iterators
num_activevaluesr~   r/   r   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#   )rY   rZ   r'   r[   r"   r\   )rY   r`   r'   ra   r"   r\   )rY   rc   r'   rd   r"   r\   )rY   rf   r'   rg   r"   r\   )rY   ri   r'   r   r"   r!   )rY   rN   r'   r!   r"   r#   )r'   r!   rk   rq   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   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"   r   )r    r!   r   r   r"   r   )&__doc__
__future__r   r   r9   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&   r)   r(   <module>r      s<     # " " " " "      $ $ $ $ $ $ > > > > > > > > > > > > , , , , , ,  322222222  " WT]]WT]] "v.
 . . . .genngenn Y_t<<<   =< Y)DAAA +/! 	! ! ! ! ! BA!6 Y_233   43 *  Y'$???K K K @?K
 Y_t<<<   =<$ Y(4@@@   A@ Y(4@@@   A@ 
      
  
      
  
      
  
      
  Y&>>>   ?> 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)   