Ë
    Q/æj„@  ã                  óÌ  — 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
mZ d dlmZmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZ erd d	l m!Z!  ee"«      jG                  «       jH                  jH                  Z% G d
„ de«      Z&dZ'd#d„Z( ed«      Z) ed«      Z*d$d„Z+d%d„Z,ejZ                  d&d„«       Z.d'd„Z/ ej`                  d¬«      d(d„«       Z1d)d„Z2 G d„ d«      Z3	 d*	 	 	 	 	 d+d„Z4	 	 d,	 	 	 	 	 	 	 d-d„Z5	 d.	 	 	 	 	 	 	 	 	 d/d„Z6	 	 	 	 	 	 	 	 	 	 d0d„Z7	 	 	 	 	 	 	 	 	 	 d1d„Z8	 	 	 	 	 	 	 	 	 	 	 	 	 	 d2d„Z9 G d„ d «      Z: G d!„ d"ee)   «      Z;y)3é    )ÚannotationsN)ÚfieldsÚis_dataclass)ÚautoÚEnum)ÚPath)
ÚAnyÚCallableÚGenericÚIterableÚIteratorÚLiteralÚNoReturnÚSequenceÚTYPE_CHECKINGÚTypeVar)ÚSelf)ÚCodeTemplate)Ú	Namespacec                  ó`   — 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© ó    úQ/root/repos/pocs/video-evals/.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   @   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   P   s(   è ø€ Øò ˆÙ�‹GˆØ‰=Ø‹Gñùs   ‚“c              #  ó>   K  — |D ]  } | |«      E d {  –—†  Œ y 7 Œ­wr4   r!   )r5   r6   r7   s      r#   Ú	concatMapr;   X   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   `   so   è ø€ ðÜøÜò á‹hˆÜ�o‰o˜c 4Ó(ˆØ'(§v¢v�—‘˜‘�˜2˜c˜UÑ#°3ˆØ�˜!Ÿ&™&  ˜*Ñ$ˆŒØûðüs%   ‚A2„	 ˆA2‰	A/’AA*Á*A/Á/A2c                óD   — t        dt        | «      j                  › �«      ‚)NzUnhandled type: )ÚAssertionErrorÚtyper   )r7   s    r#   Úassert_neverrJ   p   s    € Ü
Ð+¬D°«G×,<Ñ,<Ð+=Ð>Ó
?Ð?r"   )Úmaxsizec                ó,   — t        j                  | «      S r4   )r   Ú	from_file)Útemplate_fns    r#   Ú_read_templaterO   t   s   € ä×!Ñ! +Ó.Ð.r"   c                ó”   — t        j                  | j                  d«      «      j                  «       }t        j                  |d¬«      S )NÚlatin1Úlittle)Ú	byteorder)ÚhashlibÚsha1ÚencodeÚdigestÚintÚ
from_bytes)ÚsrU   s     r#   Ústring_stable_hashr[   z   s5   € Ü�<‰<˜Ÿ™ Ó*Ó+×2Ñ2Ó4€DÜ�>‰>˜$¨(ˆ>Ó3Ð3r"   c                  óÂ   — e Zd ZU ded<   ded<   ded<   ded<   dd„Zdd	„Z	 	 	 	 	 	 dd
„Z	 	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 dd„Zddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z	dd„Z
dd„Zy)ÚFileManagerÚstrÚinstall_dirÚtemplate_dirÚboolÚdry_runúset[str]Ú	filenamesc                óL   — || _         || _        t        «       | _        || _        y r4   )r_   r`   Úsetrd   rb   )Úselfr_   r`   rb   s       r#   Ú__init__zFileManager.__init__ˆ   s"   € Ø&ˆÔØ(ˆÔÜ›ˆŒØˆ�r"   c                ó`  — 	 t        |«      5 }|j                  «       }d d d «       |k7  r[t        j                  t        j
                  j                  |«      d¬«       t        |d«      5 }|j                  |«       d d d «       y y # 1 sw Y   ŒjxY w# t        $ r d }Y Œzw xY w# 1 sw Y   y xY w)NT)Úexist_okÚw)ÚopenÚreadÚOSErrorÚosÚmakedirsÚpathÚdirnameÚwrite)rg   ÚfilenameÚcontentsÚfÚold_contentss        r#   Ú_write_if_changedzFileManager._write_if_changedŽ   sŸ   € ð	 Ü�h“ð ( 1Ø Ÿv™v›x�÷(ð �|Ò#ä�K‰KœŸ™Ÿ™¨Ó1¸DÕAÜ�h Ó$ð "¨Ø—‘˜Ô!÷"ð "ð $÷	(ð (ûäò 	 ØŠLð	 ú÷
"ð "ús3   ‚B �BžB Á+B$ÂBÂB ÂB!Â B!Â$B-c                ót  — t         j                  j                  | j                  |«      } |«       }t	        |t
        «      ršd|vrzt        dz  dz  }	 t        t        j                  d   j                  xs |«      j                  «       }	 |j                  t        «      j                  «       }i |¥ddd|› d|› �z   i¥}t%        |«      }|j'                  |«      S t	        |t(        «      r|S t+        |«       y # t        t        f$ r |j                  «       }Y Œ�w xY w# t         $ r |j"                  }Y Œ‡w xY w)NÚgenerated_commentÚtorchgenzgen.pyÚ__main__ú@zgenerated by z from )ro   rq   Újoinr`   Ú
isinstanceÚdictÚ	REPO_ROOTr   ÚsysÚmodulesÚ__file__ÚabsoluteÚKeyErrorÚAttributeErrorÚrelative_toÚas_posixÚ
ValueErrorr-   rO   Ú
substituter^   rJ   )	rg   rN   Úenv_callableÚtemplate_pathÚenvÚgenerator_defaultÚ	generatorÚgenerator_pathÚtemplates	            r#   Úsubstitute_with_templatez$FileManager.substitute_with_templateœ   s4  € ô Ÿ™Ÿ™ T×%6Ñ%6¸ÓDˆÙ‹nˆÜ�cœ4Ô Ø"¨#Ñ-Ü$-°
Ñ$:¸XÑ$EÐ!ð=Ü $ÜŸ™ JÑ/×8Ñ8ÒMÐ<Mó!ç‘h“jð ð4Ø%.×%:Ñ%:¼9Ó%E×%NÑ%NÓ%P�NðØðà'Ø ¨nÐ-=¸VÀKÀ=ÐQÑQñ�ô & mÓ4ˆHØ×&Ñ& sÓ+Ð+Ü˜œSÔ!ØˆJä˜Õøô' !¤.Ð1ò =Ø 1× :Ñ :Ó <’Ið=ûô
 "ò 4Ø%.§^¡^’Nð4ús$   Á8C: Â#D Ã:DÄDÄD7Ä6D7c                óì   — | j                   › d|› �}|| j                  vsJ d«       ‚| j                  j                  |«       | j                  s'| j	                  ||¬«      }| j                  ||¬«       y y )Nú/zduplicate file write {filename})rN   rŒ   )rt   ru   )r_   rd   Úaddrb   r“   rx   )rg   rt   rN   rŒ   Úsubstitute_outs        r#   Úwrite_with_templatezFileManager.write_with_template½   s�   € ð ×&Ñ&Ð' q¨¨
Ð3ˆØ˜tŸ~™~Ñ-ÐPÐ/PÓPÐ-Ø�‰×Ñ˜8Ô$Ø�|Š|Ø!×:Ñ:Ø'Ø)ð ;ó ˆNð ×"Ñ"¨H¸~Ð"ÕNð r"   c                ó*   — | j                  |||«       y r4   )r˜   )rg   rt   rŒ   s      r#   rs   zFileManager.writeÍ   s   € ð
 	× Ñ  ¨8°\ÕBr"   N)Úbase_envc               óÀ  ‡‡— ddi}t        |«      D �	cg c]	  }	dd|	› �i‘Œ }
}	|g|
z   }|�|D ]  Š‰j                  |«       Œ ‰D ]C  }|D ]<  Š|‰v r1t        ‰|   t        «      sJ d«       ‚‰|   j	                  «       ‰|<   Œ8g ‰|<   Œ> ŒE dˆfd„}| j
                  rd}|D ]5  } ||«      }t        |«      |z  } ||«      } ||
|   |«        |||«       Œ7 |j                  d«      }|dk(  rt        |«      }|d | }||d  }|D ]#  Š‰d   }| j                  |› |› |› �|ˆfd	„«       Œ% | j                  j                  | j                  › d
|› d|› �«       y c c}	w )NÚshard_idÚ
Everythingr.   z'sharded keys in base_env must be a listc                ól   •— |j                  «       D ]   \  }}|‰v s
J d|› �«       ‚| |xx   |z  cc<   Œ" y )Nzundeclared sharded key )Úitems)ÚintoÚfrom_ÚkÚvÚsharded_keyss       €r#   Ú	merge_envz,FileManager.write_sharded.<locals>.merge_envó   sD   ø€ ØŸ™›ò ‘��1Ø˜LÑ(ÐGÐ,CÀAÀ3Ð*GÓGÐ(Ø�Q“˜1‘”ñr"   r!   ú.éÿÿÿÿc                 ó   •— ‰ S r4   r!   )Úshards   €r#   ú<lambda>z+FileManager.write_sharded.<locals>.<lambda>  s   ø€ È5€ r"   r•   )r    údict[str, list[str]]r¡   r«   ÚreturnÚNone)ÚrangeÚupdater   ÚlistÚcopyrb   r[   ÚrfindÚlenr˜   rd   Údiscardr_   )rg   rt   rŸ   Úkey_fnrŒ   Ú
num_shardsrš   r¤   Ú
everythingÚiÚshardsÚ
all_shardsÚkeyr¥   ÚitemÚsidrŽ   Údot_posÚbase_filenameÚ	extensionrœ   r©   s          `             @r#   Úwrite_shardedzFileManager.write_shardedÔ   s×  ù€ ð '1°,Ð%?ˆ
ä+0°Ó+<ö(
Ø&'ˆZ˜1˜Q˜C˜Ò!ð(
ˆð (
ð !�\ FÑ*ˆ
àÐØ#ò '�Ø—‘˜XÕ&ð'ð  ò 	$ˆCØ#ò $�Ø˜%‘<Ü%Ø˜c™
¤Dôð Aà@óAð ð "' s¡§¡Ó!2�E˜#’Jà!#�E˜#’Jñ$ð	$õ	ð
 �<Š<àˆEàò 	'ˆDÙ˜“,ˆCÜ$ SÓ)¨JÑ6ˆCÙ˜tÓ$ˆCá�f˜S‘k 3Ô'Ù�j #Õ&ð	'ð —.‘. Ó%ˆØ�bŠ=Ü˜(“mˆGØ   'Ð*ˆØ˜W˜XÐ&ˆ	àò 	ˆEØ˜ZÑ(ˆHØ×$Ñ$Ø �/ ( ¨I¨;Ð7¸Ã=õð	ð 	�‰×ÑØ×ÑÐ   - °
¸9¸+ÐFõ	
ùòc(
s   ”Ec           	     óž   — dj                  |dj                  d„ t        | j                  «      D «       «      «      }| j	                  ||«       y)z[Write a file containing the list of all outputs which are
        generated by this script.zset({}
    {})z
    c              3  ó,   K  — | ]  }d |z   d z   –— Œ y­w)ú"Nr!   )Ú.0r-   s     r#   ú	<genexpr>z,FileManager.write_outputs.<locals>.<genexpr>  s   è ø€ ÒN¨t˜# ™* sÕ*ÑNùs   ‚N)Úformatr~   Úsortedrd   rx   )rg   Úvariable_namert   Úcontents       r#   Úwrite_outputszFileManager.write_outputs  sD   € ð $×*Ñ*ØØ�M‰MÑN´v¸d¿n¹nÓ7MÔNÓNó
ˆð 	×Ñ˜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.
        )ro   rq   Úrelpathr`   rr   r„   ©rg   s    r#   Útemplate_dir_for_commentsz%FileManager.template_dir_for_comments  s,   € ô �w‰w�‰˜t×0Ñ0´"·'±'·/±/Ä(Ó2KÓLÐLr"   )r_   r^   r`   r^   rb   ra   r¬   r­   )rt   r^   ru   r^   r¬   r­   )rN   r^   rŒ   ú"Callable[[], str | dict[str, Any]]r¬   r^   )rt   r^   rN   r^   rŒ   rÐ   r¬   r­   )rt   r^   rŒ   rÐ   r¬   r­   )rt   r^   rŸ   úIterable[T]rµ   zCallable[[T], str]rŒ   z#Callable[[T], dict[str, list[str]]]r¶   rX   rš   zdict[str, Any] | Noner¤   rc   r¬   r­   )rÉ   r^   rt   r^   r¬   r­   ©r¬   r^   )r   r   r   Ú__annotations__rh   rx   r“   r˜   rs   rÁ   rË   rÏ   r!   r"   r#   r]   r]   ‚   sú   … ØÓØÓØƒMØÓóó"ðØðØ.Pðà	óðBOàðOð ðOð 9ð	Oð
 
óOð CàðCð 9ðCð 
ó	Cð +/ñ?
àð?
ð ð?
ð
 #ð?
ð :ð?
ð ð?
ð (ð?
ð ð?
ð 
ó?
óB2ôMr"   r]   c                ó¦   — t         j                  j                  | j                  d«      }|r|n| j                  }t        ||| j                  ¬«      S )NÚ	templates)r_   r`   rb   )ro   rq   r~   Úsource_pathr_   r]   rb   )Úoptionsr_   r`   s      r#   Úmake_file_managerrØ   (  sE   € ô —7‘7—<‘< × 3Ñ 3°[ÓA€LÙ!,‘+°'×2EÑ2E€KÜØ¨lÀGÇOÁOôð r"   c                ód   — t         j                  dk\  rddlm}  || ||«      S t	        | ||¬«      S )N)é   é
   r   )Úpformat)rA   Úwidth)r‚   Úversion_infoÚpprintrÜ   Ú_pformat)ÚobjrA   rÝ   rÜ   s       r#   Údataclass_reprrâ   3  s3   € ô ×Ñ˜7Ò"Ý"á�s˜F EÓ*Ð*ä�C ¨eÔ4Ð4r"   c                ó¤  — t        | «      sJ dt        | «      › �«       ‚| j                  j                  }|t	        |«      dz   z  }t        | «      D �cg c]1  }|j                  sŒ|j                  t        | |j                  «      f‘Œ3 }}g }|D ]š  \  }}	|t	        |«      z   dz   }
t        |	«      rt        |	|||
«      }nTt        |	t        «      rt        |	|||
«      }n5t        |	t        t        t        f«      rt!        |	|||
«      }nt        |	«      }|j#                  |› d|› �«       Œœ |dz  }d|› �j%                  |«      }|› d|› d�S c c}w )Nz%obj should be a dataclass, received: r>   ú=ú z,
ú(ú))r   rI   Ú	__class__r   r³   r   Úreprr-   Úgetattrrà   r   r€   Ú_format_dictr°   rf   ÚtupleÚ_format_listÚappendr~   )rá   rA   rÝ   Úcurr_indentÚ
class_namerv   Úfields_listÚ
fields_strr-   ÚattrÚ_curr_indentÚstr_reprÚ
indent_strÚbodys                 r#   rà   rà   A  sT  € ô ˜ÔÐQÐ EÄdÈ3ÃiÀ[ÐQÓQÐà—‘×'Ñ'€Jà”3�z“? QÑ&Ñ&€Kä;AÀ#»;ÖQ°aÈ!Ï&Ë&�A—F‘FœG C¨¯©Ó0Ò1ÐQ€KÐQà€JØ!ò 0‰
ˆˆdð #¤S¨£YÑ.°Ñ2ˆÜ˜ÔÜ  f¨e°\ÓB‰HÜ˜œdÔ#Ü# D¨&°%¸ÓF‰HÜ˜œt¤S¬%Ð0Ô1Ü# D¨&°%¸ÓF‰Hä˜D“zˆHà×Ñ˜T˜F ! H :Ð.Õ/ð0ð ˜sÑ"€JØ��Ð×"Ñ" :Ó.€DØˆ\˜˜4˜& Ð"Ð"ùò) Rs   ÁEÁ%$Ec           
     ó  — ||dz   z  }g }| j                  «       D ]V  \  }}t        |«      }t        |«      rt        ||||t	        |«      z   «      n
t        |«      }|j                  |› d|› �«       ŒX t        ||||dd«      S )NrÚ   z: ú{ú})rŸ   ré   r   rà   r³   rî   Ú_format)	ró   rA   rÝ   rï   Ú	dict_reprr¢   r£   Úk_reprÚv_strs	            r#   rë   rë   d  s™   € ð �6˜A‘:Ñ€KØ€IØ—
‘
“ò /‰ˆˆ1Ü�a“ˆô ˜AŒô �Q˜  {´S¸³[Ñ'@ÔAä�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û   )ró   rA   rÝ   rï   ÚlÚ	list_reprÚstartÚends           r#   rí   rí   x  s|   € ð �6˜A‘:Ñ€Kð öàô 4@À´?Œ��F˜E ;Ô/ÌÈQËÑOð€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é   r~   )
rò   rA   rÝ   rï   r  r  Ú	delimiterÚcurr_indent_strrö   r÷   s
             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                óL  — |j                  d«      }t        |«      |k  sJ 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¦   r=   z
namespace z {z} // namespace )	r*   r³   Úcpp_namespace_r~   Ú	prologue_ÚreversedÚ	epilogue_Únamespaces_Úentity_name_)rg   Únamespace_strÚentity_nameÚ	max_levelÚcpp_namespacesÚns         r#   rh   zNamespaceHelper.__init__¨  s¸   € ð '×,Ñ,¨TÓ2ˆä�Ó 9Ò,ð	oà/°	¨{Ð:]Ð^kÐ]lÐlmÐnó	oØ,à+ˆÔØŸ™ÀÖ#P¸A j°°°3Ò$7Ò#PÓQˆŒØŸ™Ü-5°nÓ-EÖF¨Ð ˜sÒ#ÒFó
ˆŒð *ˆÔØ'ˆÕùò $QùâFs   ÁBÁ5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  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  )rg   Údefaults     r#   Úget_cpp_namespacez!NamespaceHelper.get_cpp_namespaceÓ  s   € ð
 '+×&9Ò&9ˆt×"Ñ"ÐF¸wÐFr"   N)r  é   )r  r^   r  r^   r  rX   r¬   r­   )r&  )r  r^   r  rX   r¬   r  rÒ   )r  )r$  r^   r¬   r^   )r   r   r   Ú__doc__rh   Ústaticmethodr  Úpropertyr  r!  r  r%  r!   r"   r#   r  r  š  s¤   „ ñð KLð(Ø ð(Ø/2ð(ØDGð(à	ó(ð  à12ð
Øð
Ø+.ð
à	ò
ó ð
ð òó ðð òó ðð ò!ó ð!õ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, Literal[None]]ÚstorageNc                óL   — |€i | _         y t        j                  |«      | _         y r4   )r,  r€   Úfromkeys)rg   Úiterables     r#   rh   zOrderedSet.__init__Þ  s   € ØÐØˆD�LäŸ=™=¨Ó2ˆD�Lr"   c                ó   — || j                   v S r4   ©r,  ©rg   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¯   )rg   rŸ   s     r#   r¯   zOrderedSet.updateê  s   € Ø�‰×Ñ˜EŸM™MÕ*r"   c                ó"   — d | j                   |<   y r4   r1  r2  s     r#   r–   zOrderedSet.addí  s   € Ø!ˆ�‰�TÒr"   c                óX   — t        «       }| j                  j                  «       |_        |S r4   )r+  r,  r±   )rg   Úrets     r#   r±   zOrderedSet.copyð  s"   € Ü'›\ˆØ—l‘l×'Ñ'Ó)ˆŒØˆ
r"   c                 ób   — | d   j                  «       }| dd  D ]  }|j                  |«       Œ |S )Nr   r>   )r±   r¯   )rB   r;  rZ   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+  r=  ©rg   Úothers     r#   Ú__or__zOrderedSet.__or__ü  s   € Ü×Ñ  eÓ,Ð,r"   c                ó(   — | j                  |«       | S r4   )r¯   r?  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,  rf   r6  r?  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¬   ra   )r¬   zIterator[T])rŸ   úOrderedSet[T]r¬   r­   )r¼   r1   r¬   r­   )r¬   rF  )rB   rF  r¬   rF  )r@  rF  r¬   rF  )r@  rF  r¬   r   )r@  Úobjectr¬   ra   )r   r   r   rÓ   rh   r3  r7  r¯   r–   r±   r(  r=  rA  rC  rE  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¬   rH  )rC   zCallable[[], str]r¬   zIterator[None])r7   r   r¬   r   )rN   r^   r¬   r   )rZ   r^   r¬   rX   r4   )r×   r   r_   z
str | Noner¬   r]   )r   éP   )rá   r	   rA   rX   rÝ   rX   r¬   r^   )r   )
rá   r	   rA   rX   rÝ   rX   rï   rX   r¬   r^   )
ró   zdict[Any, Any]rA   rX   rÝ   rX   rï   rX   r¬   r^   )
ró   z&list[Any] | set[Any] | tuple[Any, ...]rA   rX   rÝ   rX   rï   rX   r¬   r^   )rò   z	list[str]rA   rX   rÝ   rX   rï   rX   r  r^   r  r^   r¬   r^   )<Ú
__future__r   Ú
contextlibÚ	functoolsrT   ro   r&   r‚   r@   Údataclassesr   r   Úenumr   r   Úpathlibr   Útypingr	   r
   r   r   r   r   r   r   r   r   Útyping_extensionsr   Útorchgen.code_templater   Úargparser   r„   r…   Úparentr�   r   ÚIDENT_REGEXr0   r1   r2   r9   r;   ÚcontextmanagerrF   rJ   Ú	lru_cacherO   r[   r]   rØ   râ   rà   rë   rí   rû   r  r+  r!   r"   r#   ú<module>rX     sR  ðÝ "ã Û Û Û 	Û 	Û 
Û ß ,ß Ý ÷÷ ÷ õ #å /ñ Ý"ñ �‹N×#Ñ#Ó%×,Ñ,×3Ñ3€	ô
$ˆTô 
$ð  €ó$ñ ˆCƒL€ÙˆCƒL€óóð ×Ñò	ó ð	ó@ð €×Ñ˜TÔ"ò/ó #ð/ó
4÷bMñ bMðN 37ðØðØ%/ðàóð Øð5Ø	ð5àð5ð ð5ð 	ó	5ð$ ð	 #Ø	ð #àð #ð ð #ð ð	 #ð
 	ó #ðFDØ
ðDàðDð ðDð ð	Dð
 	óDð(FØ
0ðFàðFð ðFð ð	Fð
 	óFð-Øð-àð-ð ð-ð ð	-ð
 ð-ð 
ð-ð 	ó-÷&>Gñ >GôB,5�˜‘õ ,5r"   