Ë
    3êñiBB  ã                  ó¨  — d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	m
Z
 d dlmZmZ d dlmZ d dlmZ d dlmZmZmZmZ d dlmZmZ d d	lmZ erd d
lmZ d dlmZm Z m!Z!m"Z"  ee#«      jI                  «       jJ                  Z&e&jJ                  Z' G d„ de«      Z(dZ)d"d„Z* ed«      Z+ ed«      Z,d#d„Z-d$d„Z.ej^                  d%d„«       Z0ejb                  d&d„«       Z2d'd„Z3 G d„ d«      Z4	 d(	 	 	 	 	 d)d„Z5	 	 d*	 	 	 	 	 	 	 d+d„Z6	 	 	 	 	 	 	 	 	 	 d,d„Z7	 	 	 	 	 	 	 	 	 	 d-d„Z8	 	 	 	 	 	 	 	 	 	 	 	 	 	 d.d„Z9 G d„ d«      Z: G d „ d!ee+   «      Z;y)/é    )ÚannotationsN)Úis_dataclass)ÚautoÚEnum)ÚPath©Úpformat)ÚAnyÚGenericÚTYPE_CHECKINGÚTypeVar)Úassert_neverÚSelf)ÚCodeTemplate)Ú	Namespace)ÚCallableÚIterableÚIteratorÚSequencec                  ó`   — e Zd Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z	y)ÚTargetN)
Ú__name__Ú
__module__Ú__qualname__r   Ú
DEFINITIONÚDECLARATIONÚREGISTRATIONÚANONYMOUS_DEFINITIONÚNAMESPACED_DEFINITIONÚNAMESPACED_DECLARATION© ó    úP/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/torchgen/utils.pyr   r   %   s/   „ á“€JÙ“&€Ká“6€Lá›6Ðá ›FÐÙ!›VÑr"   r   z(^|\W){}($|\W)c                óœ   — t        j                  d| «      }|€t        d| › �«      ‚|j                  «       \  }}}||j	                  d«      fS )Nz(\w+)(\.\w+)?\((.*)\)zUnsupported function schema: ú, )ÚreÚmatchÚRuntimeErrorÚgroupsÚsplit)ÚschemaÚmÚnameÚ_Úparamss        r#   Úsplit_name_paramsr0   8   sP   € Ü
�‰Ð)¨6Ó2€AØ€yÜÐ:¸6¸(ÐCÓDÐDØ—h‘h“j�O€Dˆ!ˆVØ�—‘˜dÓ#Ð#Ð#r"   ÚTÚSc              #  ó8   K  — |D ]  } | |«      }|€Œ|–— Œ y ­w©Nr!   )ÚfuncÚxsÚxÚrs       r#   ÚmapMayber9   H   s(   è ø€ Øò ˆÙ�‹GˆØ‰=Ø‹Gñùs   ‚“c              #  ó>   K  — |D ]  } | |«      E d {  –—†  Œ y 7 Œ­wr4   r!   )r5   r6   r7   s      r#   Ú	concatMapr;   P   s%   è ø€ Øò ˆÙ˜“7×ÑñØús   ‚“”c              #  óè   K  — 	 d –— y # t         $ r]} | «       }t        j                  |d«      }|j                  r|j                  d   › d|› �n|}|f|j                  dd  z   |_        ‚ d }~ww xY w­w)Nz  r   ú
é   )Ú	ExceptionÚtextwrapÚindentÚargs)Úmsg_fnÚeÚmsgs      r#   ÚcontextrF   X   so   è ø€ ðÜøÜò á‹hˆÜ�o‰o˜c 4Ó(ˆØ'(§v¢v�—‘˜‘�˜2˜c˜UÑ#°3ˆØ�˜!Ÿ&™&  ˜*Ñ$ˆŒØûðüs%   ‚A2„	 ˆA2‰	A/’AA*Á*A/Á/A2c                ó,   — t        j                  | «      S r4   )r   Ú	from_file)Útemplate_fns    r#   Ú_read_templaterJ   e   s   € ä×!Ñ! +Ó.Ð.r"   c                ó˜   — t        j                  | j                  d«      d¬«      j                  «       }t        j                  |d¬«      S )NÚlatin1F)ÚusedforsecurityÚlittle)Ú	byteorder)ÚhashlibÚsha1ÚencodeÚdigestÚintÚ
from_bytes)ÚsrQ   s     r#   Ústring_stable_hashrW   k   s7   € Ü�<‰<˜Ÿ™ Ó*¸EÔB×IÑIÓK€DÜ�>‰>˜$¨(ˆ>Ó3Ð3r"   c                  óê   — e Zd Z	 	 	 	 	 	 	 	 dd„Zedd„«       Zdd„Z	 	 	 	 	 	 dd„Z	 	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 dd„Z	ddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd	„Z
ddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd
„Zdd„Zdd„Zy)ÚFileManagerc                óp   — t        |«      | _        t        |«      | _        t        «       | _        || _        y r4   )r   Úinstall_dirÚtemplate_dirÚsetÚfilesÚdry_run)Úselfr[   r\   r_   s       r#   Ú__init__zFileManager.__init__t   s.   € ô   Ó,ˆÔÜ  Ó.ˆÔÜ #£ˆŒ
Øˆ�r"   c                ón   — t        | j                  D �ch c]  }|j                  «       ’Œ c}«      S c c}w r4   )Ú	frozensetr^   Úas_posix)r`   Úfiles     r#   Ú	filenameszFileManager.filenames   s%   € ä°d·j±jÖA¨d˜$Ÿ-™-�/ÒAÓBÐBùÒAs   ”2c                óÎ   — t        |«      }d }	 |j                  d¬«      }||k7  r1|j                  j	                  dd¬«       |j                  |d¬«       y y # t        $ r Y ŒBw xY w)Nzutf-8)ÚencodingT)ÚparentsÚexist_ok)r   Ú	read_textÚOSErrorÚparentÚmkdirÚ
write_text)r`   ÚfilenameÚcontentsre   Úold_contentss        r#   Ú_write_if_changedzFileManager._write_if_changedƒ   so   € Ü�H‹~ˆØ#'ˆð	ØŸ>™>°7˜>Ó;ˆLð �|Ò#à�K‰K×Ñ d°TÐÔ:Ø�O‰O˜H¨wˆOÕ7ð $øô ò 	Ùð	ús   �A Á	A$Á#A$c                óÔ  — t        |«      j                  «       rt        d|› �«      ‚| j                  |z  } |«       }t	        |t
        «      r¾d|vrwt        dz  }	 t        t        j                  d   j                  xs |«      j                  «       }	 |j                  t        «      j                  «       }i |¥ddd|› d|› �z   i¥}t%        |«      }|j'                  |«      }	t)        j*                  dd	|	t(        j,                  ¬
«      S t	        |t.        «      r|S t1        |«       y # t        t        f$ r |j                  «       }Y Œ·w xY w# t         $ r |j"                  }Y Œ®w xY w)Nztemplate_fn must be relative: Úgenerated_commentzgen.pyÚ__main__ú@zgenerated by z from zô
                (""")\n+             # match triple quotes
                (
                    (\s*@.+\n)*     # match decorators if any
                    \s*(class|def)  # match class/function definition
                )
                z\g<1>\n\n\g<2>)Úflags)r   Úis_absoluteÚAssertionErrorr\   Ú
isinstanceÚdictÚTORCHGEN_ROOTÚsysÚmodulesÚ__file__ÚabsoluteÚKeyErrorÚAttributeErrorÚrelative_toÚ	REPO_ROOTrd   Ú
ValueErrorr-   rJ   Ú
substituter&   ÚsubÚVERBOSEÚstrr   )
r`   rI   Úenv_callableÚtemplate_pathÚenvÚgenerator_defaultÚ	generatorÚgenerator_pathÚtemplateÚsubstitute_outs
             r#   Úsubstitute_with_templatez$FileManager.substitute_with_template�   sr  € ô
 �Ó×(Ñ(Ô*Ü Ð#AÀ+ÀÐ!OÓPÐPØ×)Ñ)¨KÑ7ˆÙ‹nˆÜ�cœ4Ô Ø"¨#Ñ-Ü$1°HÑ$<Ð!ð=Ü $ÜŸ™ JÑ/×8Ñ8ÒMÐ<Mó!ç‘h“jð ð4Ø%.×%:Ñ%:¼9Ó%E×%NÑ%NÓ%P�NðØðà'Ø ¨nÐ-=¸VÀKÀ=ÐQÑQñ�ô & mÓ4ˆHØ%×0Ñ0°Ó5ˆNô —6‘6ðð "ØÜ—j‘jôð ô �cœ3ÔØˆJÜ�SÕøôG !¤.Ð1ò =Ø 1× :Ñ :Ó <’Ið=ûô
 "ò 4Ø%.§^¡^’Nð4ús$   Á8D* Â#E Ä*EÅEÅE'Å&E'c                óH  — t        |«      }|j                  «       rt        d|› �«      ‚| j                  |z  }|| j                  v rt        d|› �«      ‚| j                  j                  |«       | j                  s'| j                  ||¬«      }| j                  ||¬«       y y )Núfilename must be relative: zduplicate file write )rI   r‹   )rp   rq   )	r   ry   rz   r[   r^   Úaddr_   r“   rs   )r`   rp   rI   r‹   re   r’   s         r#   Úwrite_with_templatezFileManager.write_with_templateÅ   s§   € ô ˜“>ˆØ×ÑÔ!Ü Ð#>¸x¸jÐ!IÓJÐJØ×Ñ (Ñ*ˆØ�4—:‘:ÑÜ Ð#8¸¸Ð!?Ó@Ð@Ø�
‰
�‰�tÔØ�|Š|Ø!×:Ñ:Ø'Ø)ð ;ó ˆNð ×"Ñ"¨D¸>Ð"ÕJð r"   c                ó*   — | j                  |||«       y r4   )r—   )r`   rp   r‹   s      r#   ÚwritezFileManager.writeÙ   s   € ð
 	× Ñ  ¨8°\ÕBr"   N)Úbase_envc          
     ó6   — | j                  ||||||||¬«       y )N)Úkey_fnr‹   Ú
num_shardsrš   Úsharded_keys)Úwrite_sharded_with_template)r`   rp   Úitemsrœ   r‹   r�   rš   rž   s           r#   Úwrite_shardedzFileManager.write_shardedà   s/   € ð 	×(Ñ(ØØØØØ%Ø!ØØ%ð 	)õ 		
r"   c               ó   ‡‡— t        |«      }	|	j                  «       rt        d|› �«      ‚ddi}
t        |«      D �cg c]	  }dd|› �i‘Œ }}|
g|z   }|�|D ]  Š‰j	                  |«       Œ ‰D ]G  }|D ]@  Š|‰v r5t        ‰|   t        «      st        d«      ‚‰|   j                  «       ‰|<   Œ<g ‰|<   ŒB ŒI d	ˆfd„}| j                  rd}|D ]5  } ||«      }t        |«      |z  } ||«      } |||   |«        ||
|«       Œ7 |D ]:  Š‰d   }| j                  |	j                  |	j                  › |› �«      |ˆfd„«       Œ< | j                  j                  | j                  |	j                  |	j                  › d�«      z  «       y c c}w )
Nr•   Úshard_idÚ
Everythingr.   z'sharded keys in base_env must be a listc                ót   •— |j                  «       D ]$  \  }}|‰vrt        d|› �«      ‚| |xx   |z  cc<   Œ& y )Nzundeclared sharded key )r    rz   )ÚintoÚfrom_ÚkÚvrž   s       €r#   Ú	merge_envz:FileManager.write_sharded_with_template.<locals>.merge_env  sD   ø€ ØŸ™›ò ‘��1Ø˜LÑ(Ü(Ð+BÀ1À#Ð)FÓGÐGØ�Q“˜1‘”ñr"   r!   c                 ó   •— ‰ S r4   r!   )Úshards   €r#   ú<lambda>z9FileManager.write_sharded_with_template.<locals>.<lambda>/  s   ø€ ˜€ r"   )r¦   údict[str, list[str]]r§   r®   ÚreturnÚNone)r   ry   rz   ÚrangeÚupdater{   ÚlistÚcopyr_   rW   r—   Ú	with_stemÚstemr^   Údiscardr[   )r`   rp   rI   r    rœ   r‹   r�   rš   rž   re   Ú
everythingÚiÚshardsÚ
all_shardsÚkeyrª   ÚitemÚsidr�   r£   r¬   s           `           @r#   rŸ   z'FileManager.write_sharded_with_templateö   sË  ù€ ô �H‹~ˆØ×ÑÔÜ Ð#>¸x¸jÐ!IÓJÐJØ&0°,Ð%?ˆ
ä+0°Ó+<ö(
Ø&'ˆZ˜1˜Q˜C˜Ò!ð(
ˆð (
ð !�\ FÑ*ˆ
àÐØ#ò '�Ø—‘˜XÕ&ð'ð  ò 	$ˆCØ#ò $�Ø˜%‘<Ü% e¨C¡j´$Ô7Ü,Ð-VÓWÐWØ!& s¡§¡Ó!2�E˜#’Jà!#�E˜#’Jñ$ð	$õ	ð �<Š<àˆEàò 	'ˆDÙ˜“,ˆCÜ$ SÓ)¨JÑ6ˆCÙ˜tÓ$ˆCá�f˜S‘k 3Ô'Ù�j #Õ&ð	'ð  ò 	ˆEØ˜ZÑ(ˆHØ×$Ñ$Ø—‘ $§)¡) ¨X¨JÐ7Ó8ØÛõð	ð 	�
‰
×Ñ˜4×+Ñ+¨d¯n©nÀÇ	Á	¸{È*Ð=UÓ.VÑVÕWùò[(
s   ½Fc                óŒ   — dj                  d|gd„ t        | j                  «      D «       ¢d‘­«      }| j                  ||«       y)zSWrite a file containing the list of all outputs which are generated by this script.r=   zset(c              3  óD   K  — | ]  }d |j                  «       › d�–— Œ y­w)z    "ú"N)rd   )Ú.0re   s     r#   ú	<genexpr>z,FileManager.write_outputs.<locals>.<genexpr><  s    è ø€ ÒL°�E˜$Ÿ-™-›/Ð*¨!Ô,ÑLùs   ‚ ú)N)ÚjoinÚsortedr^   rs   )r`   Úvariable_namerp   Úcontents       r#   Úwrite_outputszFileManager.write_outputs5  sP   € à—)‘)àØðñ M¼ÀÇ
Á
Ó9KÔLð	ð
 ñó
ˆð 	×Ñ˜x¨Õ1r"   c                ó˜   — t         j                  j                  | j                  t         j                  j	                  t
        «      «      S )zé
        This needs to be deterministic. The template dir is an absolute path
        that varies across builds. So, just use the path relative to this file,
        which will point to the codegen source but will be stable.
        )ÚosÚpathÚrelpathr\   Údirnamer€   ©r`   s    r#   Útemplate_dir_for_commentsz%FileManager.template_dir_for_commentsB  s,   € ô �w‰w�‰˜t×0Ñ0´"·'±'·/±/Ä(Ó2KÓLÐLr"   )r[   ú
str | Pathr\   rÑ   r_   Úboolr¯   r°   )r¯   zfrozenset[str])rp   rÑ   rq   rŠ   r¯   r°   )rI   rÑ   r‹   ú"Callable[[], str | dict[str, Any]]r¯   rŠ   )rp   rÑ   rI   rÑ   r‹   rÓ   r¯   r°   )rp   rÑ   r‹   rÓ   r¯   r°   )rp   rÑ   r    úIterable[T]rœ   úCallable[[T], str]r‹   ú#Callable[[T], dict[str, list[str]]]r�   rT   rš   údict[str, Any] | Nonerž   úset[str]r¯   r°   )rp   rÑ   rI   rÑ   r    rÔ   rœ   rÕ   r‹   rÖ   r�   rT   rš   r×   rž   rØ   r¯   r°   )rÇ   rŠ   rp   rÑ   r¯   r°   ©r¯   rŠ   )r   r   r   ra   Úpropertyrf   rs   r“   r—   r™   r¡   rŸ   rÉ   rÐ   r!   r"   r#   rY   rY   s   s�  „ ð	àð	ð !ð	ð ð		ð
 
ó	ð òCó ðCó
8ð3àð3ð 9ð3ð 
ó	3ðjKàðKð  ðKð 9ð	Kð
 
óKð(CàðCð 9ðCð 
ó	Cð +/ñ
àð
ð ð
ð
 #ð
ð :ð
ð ð
ð (ð
ð ð
ð 
ó
ð> +/ñ=Xàð=Xð  ð=Xð ð	=Xð #ð=Xð :ð=Xð ð=Xð (ð=Xð ð=Xð 
ó=Xó~2ôMr"   rY   c                ó¦   — t         j                  j                  | j                  d«      }|r|n| j                  }t        ||| j                  ¬«      S )NÚ	templates)r[   r\   r_   )rË   rÌ   rÅ   Úsource_pathr[   rY   r_   )Úoptionsr[   r\   s      r#   Úmake_file_managerrß   L  sG   € ô —7‘7—<‘< × 3Ñ 3°[ÓA€LÙ!,‘+°'×2EÑ2E€KÜØØ!Ø—‘ôð r"   c                ó   — t        | ||«      S r4   r   )ÚobjrA   Úwidths      r#   Údataclass_reprrã   Z  s   € ô
 �3˜ Ó&Ð&r"   c           
     ó  — ||dz   z  }g }| j                  «       D ]V  \  }}t        |«      }t        |«      rt        ||||t	        |«      z   «      n
t        |«      }|j                  |› d|› �«       ŒX t        ||||dd«      S )Né   z: ú{ú})r    Úreprr   r	   ÚlenÚappendÚ_format)	ÚattrrA   râ   Úcurr_indentÚ	dict_reprr¨   r©   Úk_reprÚv_strs	            r#   Ú_format_dictrñ   b  s™   € ð �6˜A‘:Ñ€KØ€IØ—
‘
“ò /‰ˆˆ1Ü�a“ˆô ˜AŒô �A�v˜u k´C¸³KÑ&?Ô@ä�a“ð 	ð
 	×Ñ˜F˜8 2 e WÐ-Õ.ð/ô �9˜f e¨[¸#¸sÓCÐCr"   c           	     óÌ   — ||dz   z  }| D �cg c]&  }t        |«      rt        ||||«      n
t        |«      ‘Œ( }}t        | t        «      rdnd\  }}t        ||||||«      S c c}w )Nr>   )ú[ú])ú(rÄ   )r   r	   rè   r{   r³   rë   )rì   rA   râ   rí   ÚlÚ	list_reprÚstartÚends           r#   Ú_format_listrú   v  s{   € ð �6˜A‘:Ñ€Kð öàô 3?¸q´/Œ��6˜5 +Ô.ÄtÈAÃwÑNð€Ið ô  *¨$´Ô5‘¸:�J€Eˆ3Ü�9˜f e¨[¸%ÀÓEÐEùòs   �+A!c                ó’   — d\  }}t        t        | «      «      |k\  rd}d|z  }d|z  }d|› |› �j                  | «      }	|› |› |	› |› �S )N)Ú rü   r=   ú r%   )ré   rè   rÅ   )
Ú
fields_strrA   râ   rí   rø   rù   Ú	delimiterÚcurr_indent_strÚ
indent_strÚbodys
             r#   rë   rë   …  sk   € ð "(Ñ€Iˆä
Œ4�
ÓÓ Ò%Øˆ	Ø Ñ+ˆà�v‘€JØ�	ˆ{˜?Ð+Ð,×1Ñ1°*Ó=€DØˆW�Z�L   s eÐ,Ð,r"   c                  óŒ   — e Zd ZdZ	 	 d		 	 	 	 	 	 	 d
d„Ze	 d	 	 	 	 	 dd„«       Zedd„«       Zedd„«       Z	edd„«       Z
ddd„Zy)ÚNamespaceHelpera  A helper for constructing the namespace open and close strings for a nested set of namespaces.

    e.g. for namespace_str torch::lazy,

    prologue:
    namespace torch {
    namespace lazy {

    epilogue:
    } // namespace lazy
    } // namespace torch
    c                óT  — |j                  d«      }t        |«      |kD  rt        d|› d|› d�«      ‚|| _        dj	                  |D �cg c]  }d|› d�‘Œ
 c}«      | _        dj	                  t        |«      D �cg c]  }d|› �‘Œ	 c}«      | _        || _        || _	        y c c}w c c}w )	Nú::z"Codegen doesn't support more than z# level(s) of custom namespace. Got ú.r=   z
namespace z {z} // namespace )
r*   ré   rz   Úcpp_namespace_rÅ   Ú	prologue_ÚreversedÚ	epilogue_Únamespaces_Úentity_name_)r`   Únamespace_strÚentity_nameÚ	max_levelÚcpp_namespacesÚns         r#   ra   zNamespaceHelper.__init__¦  s»   € ð '×,Ñ,¨TÓ2ˆÜˆ~Ó Ò*Ü Ø4°Y°Kð @)Ø)6¨°qð:óð ð ,ˆÔØŸ™ÀÖ#P¸A j°°°3Ò$7Ò#PÓQˆŒØŸ™Ü-5°nÓ-EÖF¨Ð ˜sÒ#ÒFó
ˆŒð *ˆÔØ'ˆÕùò $QùâFs   ÁB Á9B%c                ór   — | j                  d«      }|d   }dj                  |dd «      }t        |||¬«      S )zq
        Generate helper from nested namespaces as long as class/function name. E.g.: "torch::lazy::add"
        r  éÿÿÿÿN)r  r  r  )r*   rÅ   r  )Únamespaced_entityr  Únamesr  r  s        r#   Úfrom_namespaced_entityz&NamespaceHelper.from_namespaced_entity»  sE   € ð "×'Ñ'¨Ó-ˆØ˜B‘iˆØŸ	™	 %¨¨ *Ó-ˆÜØ'°[ÈIô
ð 	
r"   c                ó   — | j                   S r4   )r	  rÏ   s    r#   ÚprologuezNamespaceHelper.prologueÊ  ó   € à�~‰~Ðr"   c                ó   — | j                   S r4   )r  rÏ   s    r#   ÚepiloguezNamespaceHelper.epilogueÎ  r  r"   c                ó   — | j                   S r4   )r  rÏ   s    r#   r  zNamespaceHelper.entity_nameÒ  s   € à× Ñ Ð r"   c                ó6   — | j                   r| j                   S |S )z£
        Return the namespace string from joining all the namespaces by "::" (hence no leading "::").
        Return default if namespace string is empty.
        )r  )r`   Údefaults     r#   Úget_cpp_namespacez!NamespaceHelper.get_cpp_namespace×  s   € ð
 '+×&9Ò&9ˆt×"Ñ"ÐF¸wÐFr"   N)rü   é   )r  rŠ   r  rŠ   r  rT   r¯   r°   )r!  )r  rŠ   r  rT   r¯   r  rÙ   )rü   )r  rŠ   r¯   rŠ   )r   r   r   Ú__doc__ra   Ústaticmethodr  rÚ   r  r  r  r   r!   r"   r#   r  r  ˜  s¯   „ ñð  Øð	(àð(ð ð(ð ð	(ð
 
ó(ð* ð ð
Øð
àð
ð 
ò
ó ð
ð òó ðð òó ðð ò!ó ð!õGr"   r  c                  ót   — e Zd ZU ded<   ddd„Zdd„Zdd„Zdd„Zdd„Zdd	„Z	e
dd
„«       Zdd„Zdd„Zdd„Zy)Ú
OrderedSetzdict[T, None]ÚstorageNc                óL   — |€i | _         y t        j                  |«      | _         y r4   )r&  r|   Úfromkeys)r`   Úiterables     r#   ra   zOrderedSet.__init__â  s   € ØÐØˆD�LäŸ=™=¨Ó2ˆD�Lr"   c                ó   — || j                   v S r4   ©r&  ©r`   r½   s     r#   Ú__contains__zOrderedSet.__contains__è  s   € Ø�t—|‘|Ð#Ð#r"   c                óH   — t        | j                  j                  «       «      S r4   )Úiterr&  ÚkeysrÏ   s    r#   Ú__iter__zOrderedSet.__iter__ë  s   € Ü�D—L‘L×%Ñ%Ó'Ó(Ð(r"   c                óN   — | j                   j                  |j                   «       y r4   )r&  r²   )r`   r    s     r#   r²   zOrderedSet.updateî  s   € Ø�‰×Ñ˜EŸM™MÕ*r"   c                ó"   — d | j                   |<   y r4   r+  r,  s     r#   r–   zOrderedSet.addñ  s   € Ø!ˆ�‰�TÒr"   c                óX   — t        «       }| j                  j                  «       |_        |S r4   )r%  r&  r´   )r`   Úrets     r#   r´   zOrderedSet.copyô  s"   € Ü'›\ˆØ—l‘l×'Ñ'Ó)ˆŒØˆ
r"   c                 ób   — | d   j                  «       }| dd  D ]  }|j                  |«       Œ |S )Nr   r>   )r´   r²   )rB   r5  rV   s      r#   ÚunionzOrderedSet.unionù  s6   € à�1‰g�l‰l‹nˆØ�a�b�ò 	ˆAØ�J‰J�q�Mð	àˆ
r"   c                ó.   — t         j                  | |«      S r4   )r%  r7  ©r`   Úothers     r#   Ú__or__zOrderedSet.__or__   s   € Ü×Ñ  eÓ,Ð,r"   c                ó(   — | j                  |«       | S r4   )r²   r9  s     r#   Ú__ior__zOrderedSet.__ior__  s   € Ø�‰�EÔØˆr"   c                ó    — t        |t        «      r| j                  |j                  k(  S t        | j                  j	                  «       «      |k(  S r4   )r{   r%  r&  r]   r0  r9  s     r#   Ú__eq__zOrderedSet.__eq__  s<   € Ü�eœZÔ(Ø—<‘< 5§=¡=Ñ0Ð0ä�t—|‘|×(Ñ(Ó*Ó+¨uÑ4Ð4r"   r4   )r)  zIterable[T] | Noner¯   r°   )r½   r1   r¯   rÒ   )r¯   zIterator[T])r    úOrderedSet[T]r¯   r°   )r½   r1   r¯   r°   )r¯   r@  )rB   r@  r¯   r@  )r:  r@  r¯   r@  )r:  r@  r¯   r   )r:  Úobjectr¯   rÒ   )r   r   r   Ú__annotations__ra   r-  r1  r²   r–   r´   r#  r7  r;  r=  r?  r!   r"   r#   r%  r%  ß  sI   … ØÓô3ó$ó)ó+ó"óð
 òó ðó-óô5r"   r%  )r+   rŠ   r¯   ztuple[str, list[str]])r5   zCallable[[T], S | None]r6   rÔ   r¯   úIterator[S])r5   zCallable[[T], Sequence[S]]r6   rÔ   r¯   rC  )rC   zCallable[[], str]r¯   zIterator[None])rI   rŠ   r¯   r   )rV   rŠ   r¯   rT   r4   )rÞ   r   r[   zstr | Path | Noner¯   rY   )r   éP   )rá   r
   rA   rT   râ   rT   r¯   rŠ   )
rì   zdict[Any, Any]rA   rT   râ   rT   rí   rT   r¯   rŠ   )
rì   z&list[Any] | set[Any] | tuple[Any, ...]rA   rT   râ   rT   rí   rT   r¯   rŠ   )rþ   z	list[str]rA   rT   râ   rT   rí   rT   rø   rŠ   rù   rŠ   r¯   rŠ   )<Ú
__future__r   Ú
contextlibÚ	functoolsrP   rË   r&   r~   r@   Údataclassesr   Úenumr   r   Úpathlibr   Úpprintr	   Útypingr
   r   r   r   Útyping_extensionsr   r   Útorchgen.code_templater   Úargparser   Úcollections.abcr   r   r   r   r€   r�   rm   r}   r…   r   ÚIDENT_REGEXr0   r1   r2   r9   r;   ÚcontextmanagerrF   ÚcacherJ   rW   rY   rß   rã   rñ   rú   rë   r  r%  r!   r"   r#   ú<module>rT     s  ðÝ "ã Û Û Û 	Û 	Û 
Û Ý $ß Ý Ý ß 7Ó 7ß 0å /ñ Ý"ßFÓFñ �X“×'Ñ'Ó)×0Ñ0€Ø× Ñ €	ô
$ˆTô 
$ð  €ó$ñ ˆCƒL€ÙˆCƒL€óóð ×Ñò	ó ð	ð ‡�ò/ó ð/ó
4÷UMñ UMðv &*ð
Øð
à"ð
ð ó
ð  Øð'Ø	ð'àð'ð ð'ð 	ó	'ðDØ
ðDàðDð ðDð ð	Dð
 	óDð(FØ
0ðFàðFð ðFð ð	Fð
 	óFð-Øð-àð-ð ð-ð ð	-ð
 ð-ð 
ð-ð 	ó-÷&DGñ DGôN,5�˜‘õ ,5r"   