§
    ž²Åj  ã                  ó  — d Z ddlmZ ddlZddlZddlmZmZmZm	Z	 ddl
mZ g d¢Z e	d¦  «        Z e	d	¦  «        Z eej        d
¬¦  «        d$d„¦   «         Z eej        j        ¦  «        d%d„¦   «         Zee_         eej        d
¬¦  «        d&d„¦   «         Zej        dk    r" eej        d
¬¦  «        d'd„¦   «         Zedgz  Z eej        ¦  «        d(d)d„¦   «         Z eej        d
¬¦  «        d*d#„¦   «         ZdS )+z 
Python polyfills for itertools
é    )ÚannotationsN)Ú	GeneratorÚIterableÚIteratorÚTypeVaré   )Úsubstitute_in_graph)ÚchainÚchain_from_iterableÚisliceÚteeÚcompressÚ_TÚ_UT)Úis_embedded_typeÚ	iterablesúIterable[_T]ÚreturnúIterator[_T]c               '  ó$   K  — | D ]
}|E d {V —† Œd S ©N© )r   Úiterables     úRC:\Projects\Historical\venv\Lib\site-packages\torch/_dynamo/polyfills/itertools.pyr
   r
      s:   è è € àð ð ˆØÐÐÐÐÐÐÐÐðð ó    r   úIterable[Iterable[_T]]c               ó   — t          j        | Ž S r   )Ú	itertoolsr
   )r   s    r   r   r   "   s   € åŒ?˜HÐ%Ð%r   Ú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ÚmaxÚzip)
r   r   Úsr$   r%   r&   Únext_iÚiÚelementÚindicess
             r   r   r   +   s  è è € åˆtˆ€AØ”�ˆAˆA a¤g€EØŒ6€DØ”�ˆ1ˆ1 A¤F€DØˆq‚y€y�TÐ%¨$°ª(¨(°t¸q²y°yÝØUñ
ô 
ð 	
ð €|ð ˆÝ# HÑ-Ô-ð 	ð 	‰JˆAˆwØ�FŠ{ˆ{Ø���Ø˜$‘�øð	ð 	õ
 �˜E 4Ñ(Ô(Ñ)Ô)ˆØˆÝ˜g xÑ0Ô0ð 	ð 	‰JˆAˆwØ�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   Úpairwiser8   J   sL   è è € àˆØˆØð 	ð 	ˆAØð Ø��à˜�d�
�
�
ØˆAˆAð	ð 	r   r8   Ú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)NTr"   r   )ÚnextÚStopIteration)ÚlinkÚvalueÚiterators     €r   Ú_teeztee.<locals>._tee^   sq   øè è € ð	ðØ˜”7�?Ý" 8™nœn�D˜‘GØ# T˜l�D˜‘GØ"‘��tØ���ðøõ ð 	ð 	ð 	ØˆFˆFð	øøøs   …,1 ±
?¾?c              3  ó.   •K  — | ]} ‰‰¦  «        V — Œd S r   r   )Ú.0Ú_rC   Úshared_links     €€r   ú	<genexpr>ztee.<locals>.<genexpr>i   s-   øè è € Ð5Ð5 q���kÑ"Ô"Ð5Ð5Ð5Ð5Ð5Ð5r   )r   r   )ÚiterÚtupler)   )r   r9   rC   rB   rG   s     @@@r   r   r   Y   se   øøø€ å�H‰~Œ~€HØ˜�,€Kð	ð 	ð 	ð 	ð 	ð 	õ Ð5Ð5Ð5Ð5Ð5­E°!©H¬HÐ5Ñ5Ô5Ñ5Ô5Ð5r   ÚdataÚ	selectorsúIterable[_U]úGenerator[_T, None, None]c               ó6   — d„ t          | |¦  «        D ¦   «         S )Nc              3  ó$   K  — | ]\  }}|¯|V — Œd S r   r   )rE   ÚdatumÚselectors      r   rH   zcompress.<locals>.<genexpr>q   s+   è è € ÐJÐJ‘o�e˜XÀÐJˆEÐJÐJÐJÐJÐJÐJr   )r+   )rK   rL   s     r   r   r   m   s#   € ð KÐJ­¨T°9Ñ)=Ô)=ÐJÑJÔJÐJr   )r   r   r   r   )r   r   r   r   )r   r   r   r    r   r   )r   r   r   r3   )r   )r   r   r9   r:   r   r;   )rK   r   rL   rM   r   rN   )Ú__doc__Ú
__future__r   r   ÚsysÚtypingr   r   r   r   Ú
decoratorsr	   Ú__all__r   r   r
   Úfrom_iterabler   r   Úversion_infor8   r   r   r   r   r   ú<module>r[      s  ððð ð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø 
€
€
€
Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9à ,Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð €ð €WˆT�]„]€Ø€WˆT�]„]€ð Ð�Y”_°tÐ<Ñ<Ô<ðð ð ñ =Ô<ðð
 Ð�Y”_Ô2Ñ3Ô3ð&ð &ð &ñ 4Ô3ð&ð *€Ô ð Ð�YÔ%¸Ð=Ñ=Ô=ðð ð ñ >Ô=ðð8 Ô�wÒÐàÐ˜Ô+¸dÐCÑCÔCðð ð ñ DÔCðð �
ˆ|Ñ€Gð Ð�Y”]Ñ#Ô#ð6ð 6ð 6ð 6ñ $Ô#ð6ð& Ð�YÔ'¸$Ð?Ñ?Ô?ðKð Kð Kñ @Ô?ðKð Kð Kr   