Ë
    úÍ:j˜H  ã                  óì  — 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 d dlmZ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$  ee%«      jM                  «       jN                  Z(e(jN                  Z) G d„ de«      Z*dZ+d$d„Z, ed«      Z- ed«      Z.d%d„Z/d&d„Z0ejb                  d'd„«       Z2er ed«      d(d„«       Zejf                  d)d„«       Z4d*d„Z5 G d„ d«      Z6	 d+	 	 	 	 	 d,d„Z7	 	 d-	 	 	 	 	 	 	 d.d„Z8	 d/	 	 	 	 	 	 	 	 	 d0d„Z9	 	 	 	 	 	 	 	 	 	 d1d„Z:	 	 	 	 	 	 	 	 	 	 d2d„Z;	 	 	 	 	 	 	 	 	 	 	 	 	 	 d3d„Z< G d „ d!«      Z= G d"„ d#ee-   «      Z>y)4é    )ÚannotationsN)ÚfieldsÚis_dataclass)ÚautoÚEnum)ÚPath)ÚAnyÚCallableÚGenericÚLiteralÚNoReturnÚTYPE_CHECKINGÚTypeVar)Úassert_neverÚ
deprecatedÚSelf)ÚCodeTemplate)Ú	Namespace)Ú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© ó    úc/home/mcse/projects/srt_converter/srt-converter-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_paramsr2   7   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%   ÚmapMayber;   G   s(   è ø€ Øò ˆÙ�‹GˆØ‰=Ø‹Gñùs   ‚“c              #  ó>   K  — |D ]  } | |«      E d {  –—†  Œ y 7 Œ­wr6   r#   )r7   r8   r9   s      r%   Ú	concatMapr=   O   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%   ÚcontextrH   W   so   è ø€ ðÜøÜò á‹hˆÜ�o‰o˜c 4Ó(ˆØ'(§v¢v�—‘˜‘�˜2˜c˜UÑ#°3ˆØ�˜!Ÿ&™&  ˜*Ñ$ˆŒØûðüs%   ‚A2„	 ˆA2‰	A/’AA*Á*A/Á/A2z*Use typing_extensions.assert_never insteadc                óD   — t        dt        | «      j                  › �«      ‚)NzUnhandled type: )ÚAssertionErrorÚtyper   )r9   s    r%   r   r   h   s    € äÐ/´°Q³×0@Ñ0@Ð/AÐBÓCÐCr$   c                ó,   — t        j                  | «      S r6   )r   Ú	from_file)Útemplate_fns    r%   Ú_read_templaterO   m   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)ÚsrV   s     r%   Ústring_stable_hashr\   s   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 r6   )r   Úinstall_dirÚtemplate_dirÚsetÚfilesÚdry_run)Úselfr`   ra   rd   s       r%   Ú__init__zFileManager.__init__|   s.   € ô   Ó,ˆÔÜ  Ó.ˆÔÜ #£ˆŒ
Øˆ�r$   c                ón   — t        | j                  D �ch c]  }|j                  «       ’Œ c}«      S c c}w r6   )Ú	frozensetrc   Úas_posix)re   Ú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)re   ÚfilenameÚcontentsrj   Ú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
J 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 t/        |«       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_absolutera   Ú
isinstanceÚdictÚTORCHGEN_ROOTÚsysÚmodulesÚ__file__ÚabsoluteÚKeyErrorÚAttributeErrorÚrelative_toÚ	REPO_ROOTri   Ú
ValueErrorr/   rO   Ú
substituter(   ÚsubÚVERBOSEÚstrr   )
re   rN   Úenv_callableÚtemplate_pathÚenvÚgenerator_defaultÚ	generatorÚgenerator_pathÚtemplateÚsubstitute_outs
             r%   Úsubstitute_with_templatez$FileManager.substitute_with_template˜   sx  € ô
 ˜Ó$×0Ñ0Ô2ð 	
Ø,¨[¨MÐ:ó	
Ð2ð ×)Ñ)¨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                ó8  — t        |«      }|j                  «       r
J d|› �«       ‚| j                  |z  }|| j                  vs
J d|› �«       ‚| j                  j	                  |«       | j
                  s'| j                  ||¬«      }| j                  ||¬«       y y )Núfilename must be relative: zduplicate file write )rN   r�   )ru   rv   )r   r~   r`   rc   Úaddrd   r—   rx   )re   ru   rN   r�   rj   r–   s         r%   Úwrite_with_templatezFileManager.write_with_templateÎ   s§   € ô ˜“>ˆØ×'Ñ'Ô)ÐSÐ-HÈÈ
Ð+SÓSÐ)Ø×Ñ (Ñ*ˆØ˜4Ÿ:™:Ñ%ÐEÐ)>¸t¸fÐ'EÓEÐ%Ø�
‰
�‰�tÔØ�|Š|Ø!×:Ñ:Ø'Ø)ð ;ó ˆNð ×"Ñ"¨D¸>Ð"ÕJð r$   c                ó*   — | j                  |||«       y r6   )r›   )re   ru   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)re   ru   Úitemsr    r�   r¡   rž   r¢   s           r%   Úwrite_shardedzFileManager.write_shardedç   s/   € ð 	×(Ñ(ØØØØØ%Ø!ØØ%ð 	)õ 		
r$   c               ó  ‡‡— t        |«      }	|	j                  «       r
J d|› �«       ‚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 |D ]:  Š‰d   }| j                  |	j                  |	j                  › |› �«      |ˆfd„«       Œ< | j                  j                  | j                  |	j                  |	j                  › d�«      z  «       y c c}w )
Nr™   Úshard_idÚ
Everythingr0   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 )r¤   )ÚintoÚfrom_ÚkÚvr¢   s       €r%   Ú	merge_envz:FileManager.write_sharded_with_template.<locals>.merge_env  sD   ø€ ØŸ™›ò ‘��1Ø˜LÑ(ÐGÐ,CÀAÀ3Ð*GÓGÐ(Ø�Q“˜1‘”ñr$   r#   c                 ó   •— ‰ S r6   r#   )Úshards   €r%   ú<lambda>z9FileManager.write_sharded_with_template.<locals>.<lambda>5  s   ø€ ˜€ r$   )rª   údict[str, list[str]]r«   r²   ÚreturnÚNone)r   r~   ÚrangeÚupdater   ÚlistÚcopyrd   r\   r›   Ú	with_stemÚstemrc   Údiscardr`   )re   ru   rN   r¤   r    r�   r¡   rž   r¢   rj   Ú
everythingÚiÚshardsÚ
all_shardsÚkeyr®   ÚitemÚsidr‘   r§   r°   s           `           @r%   r£   z'FileManager.write_sharded_with_templateý   sÑ  ù€ ô �H‹~ˆØ×#Ñ#Ô%ÐOÐ)DÀXÀJÐ'OÓOÐ%Ø&0°,Ð%?ˆ
ä+0°Ó+<ö(
Ø&'ˆZ˜1˜Q˜C˜Ò!ð(
ˆð (
ð !�\ FÑ*ˆ
àÐØ#ò '�Ø—‘˜XÕ&ð'ð  ò 	$ˆCØ#ò $�Ø˜%‘<Ü% e¨C¡j´$Ô7ð ØAóÐ7ð "' 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)ri   )Ú.0rj   s     r%   ú	<genexpr>z,FileManager.write_outputs.<locals>.<genexpr>B  s    è ø€ ÒL°�E˜$Ÿ-™-›/Ð*¨!Ô,ÑLùs   ‚ ú)N)ÚjoinÚsortedrc   rx   )re   Úvariable_nameru   Úcontents       r%   Úwrite_outputszFileManager.write_outputs;  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Úrelpathra   Údirnamer„   ©re   s    r%   Útemplate_dir_for_commentsz%FileManager.template_dir_for_commentsH  s,   € ô �w‰w�‰˜t×0Ñ0´"·'±'·/±/Ä(Ó2KÓLÐLr$   )r`   ú
str | Pathra   rÕ   rd   Úboolr³   r´   )r³   zfrozenset[str])ru   rÕ   rv   rŽ   r³   r´   )rN   rÕ   r�   ú"Callable[[], str | dict[str, Any]]r³   rŽ   )ru   rÕ   rN   rÕ   r�   r×   r³   r´   )ru   rÕ   r�   r×   r³   r´   )ru   rÕ   r¤   úIterable[T]r    úCallable[[T], str]r�   ú#Callable[[T], dict[str, list[str]]]r¡   rY   rž   údict[str, Any] | Noner¢   úset[str]r³   r´   )ru   rÕ   rN   rÕ   r¤   rØ   r    rÙ   r�   rÚ   r¡   rY   rž   rÛ   r¢   rÜ   r³   r´   )rË   rŽ   ru   rÕ   r³   r´   ©r³   rŽ   )r   r   r   rf   Úpropertyrk   rx   r—   r›   r�   r¥   r£   rÍ   rÔ   r#   r$   r%   r^   r^   {   s�  „ ð	àð	ð !ð	ð ð		ð
 
ó	ð òCó ðCó
8ð4àð4ð 9ð4ð 
ó	4ðlKàðKð  ðKð 9ð	Kð
 
óKð$CàðCð 9ðCð 
ó	Cð +/ñ
àð
ð ð
ð
 #ð
ð :ð
ð ð
ð (ð
ð ð
ð 
ó
ð> +/ñ<Xàð<Xð  ð<Xð ð	<Xð #ð<Xð :ð<Xð ð<Xð (ð<Xð ð<Xð 
ó<Xó|2ôMr$   r^   c                ó¦   — t         j                  j                  | j                  d«      }|r|n| j                  }t        ||| j                  ¬«      S )NÚ	templates)r`   ra   rd   )rÏ   rÐ   rÉ   Úsource_pathr`   r^   rd   )Úoptionsr`   ra   s      r%   Úmake_file_managerrã   R  sG   € ô —7‘7—<‘< × 3Ñ 3°[ÓA€LÙ!,‘+°'×2EÑ2E€KÜØØ!Ø—‘ôð r$   c                ód   — t         j                  dk\  rddlm}  || ||«      S t	        | ||¬«      S )N)é   é
   r   )Úpformat)rC   Úwidth)r‚   Úversion_infoÚpprintrç   Ú_pformat)ÚobjrC   rè   rç   s       r%   Údataclass_reprrí   `  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È   )r   rK   Ú	__class__r   Úlenr   Úreprr/   Úgetattrrë   r   r€   Ú_format_dictr·   rb   ÚtupleÚ_format_listÚappendrÉ   )rì   rC   rè   Úcurr_indentÚ
class_nameÚfÚfields_listÚ
fields_strr/   ÚattrÚ_curr_indentÚstr_reprÚ
indent_strÚbodys                 r%   rë   rë   n  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ÿ   rC   rè   rú   Ú	dict_reprr¬   r­   Úk_reprÚv_strs	            r%   rö   rö   ‘  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ÿ   rC   rè   rú   ÚlÚ	list_reprÚstartÚends           r%   rø   rø   ¥  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þ   rC   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?   z
namespace z {z} // namespace )	r,   ró   Úcpp_namespace_rÉ   Ú	prologue_ÚreversedÚ	epilogue_Únamespaces_Úentity_name_)re   Únamespace_strÚentity_nameÚ	max_levelÚcpp_namespacesÚns         r%   rf   zNamespaceHelper.__init__Õ  s¸   € ð '×,Ñ,¨TÓ2ˆÜ�>Ó" iÒ/ð 	
Ø0°°Ð;^Ð_lÐ^mÐmnÐ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  éÿÿÿÿ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 r6   )r  rÓ   s    r%   ÚprologuezNamespaceHelper.prologue÷  ó   € à�~‰~Ðr$   c                ó   — | j                   S r6   )r  rÓ   s    r%   ÚepiloguezNamespaceHelper.epilogueû  r-  r$   c                ó   — | j                   S r6   )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  )re   Údefaults     r%   Úget_cpp_namespacez!NamespaceHelper.get_cpp_namespace  s   € ð
 '+×&9Ò&9ˆt×"Ñ"ÐF¸wÐFr$   N)r  é   )r!  rŽ   r"  rŽ   r#  rY   r³   r´   )r4  )r(  rŽ   r#  rY   r³   r  rÝ   )r  )r2  rŽ   r³   rŽ   )r   r   r   Ú__doc__rf   Ústaticmethodr*  rÞ   r,  r/  r"  r3  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, Literal[None]]ÚstorageNc                óL   — |€i | _         y t        j                  |«      | _         y r6   )r9  r€   Úfromkeys)re   Úiterables     r%   rf   zOrderedSet.__init__  s   € ØÐØˆD�LäŸ=™=¨Ó2ˆD�Lr$   c                ó   — || j                   v S r6   ©r9  ©re   rÁ   s     r%   Ú__contains__zOrderedSet.__contains__  s   € Ø�t—|‘|Ð#Ð#r$   c                óH   — t        | j                  j                  «       «      S r6   )Úiterr9  ÚkeysrÓ   s    r%   Ú__iter__zOrderedSet.__iter__  s   € Ü�D—L‘L×%Ñ%Ó'Ó(Ð(r$   c                óN   — | j                   j                  |j                   «       y r6   )r9  r¶   )re   r¤   s     r%   r¶   zOrderedSet.update  s   € Ø�‰×Ñ˜EŸM™MÕ*r$   c                ó"   — d | j                   |<   y r6   r>  r?  s     r%   rš   zOrderedSet.add  s   € Ø!ˆ�‰�TÒr$   c                óX   — t        «       }| j                  j                  «       |_        |S r6   )r8  r9  r¸   )re   Úrets     r%   r¸   zOrderedSet.copy!  s"   € Ü'›\ˆØ—l‘l×'Ñ'Ó)ˆŒØˆ
r$   c                 ób   — | d   j                  «       }| dd  D ]  }|j                  |«       Œ |S )Nr   r@   )r¸   r¶   )rD   rH  r[   s      r%   ÚunionzOrderedSet.union&  s6   € à�1‰g�l‰l‹nˆØ�a�b�ò 	ˆAØ�J‰J�q�Mð	àˆ
r$   c                ó.   — t         j                  | |«      S r6   )r8  rJ  ©re   Úothers     r%   Ú__or__zOrderedSet.__or__-  s   € Ü×Ñ  eÓ,Ð,r$   c                ó(   — | j                  |«       | S r6   )r¶   rL  s     r%   Ú__ior__zOrderedSet.__ior__0  s   € Ø�‰�EÔØˆr$   c                ó    — t        |t        «      r| j                  |j                  k(  S t        | j                  j	                  «       «      |k(  S r6   )r   r8  r9  rb   rC  rL  s     r%   Ú__eq__zOrderedSet.__eq__4  s<   € Ü�eœZÔ(Ø—<‘< 5§=¡=Ñ0Ð0ä�t—|‘|×(Ñ(Ó*Ó+¨uÑ4Ð4r$   r6   )r<  zIterable[T] | Noner³   r´   )rÁ   r3   r³   rÖ   )r³   zIterator[T])r¤   úOrderedSet[T]r³   r´   )rÁ   r3   r³   r´   )r³   rS  )rD   rS  r³   rS  )rM  rS  r³   rS  )rM  rS  r³   r   )rM  Úobjectr³   rÖ   )r   r   r   Ú__annotations__rf   r@  rD  r¶   rš   r¸   r6  rJ  rN  rP  rR  r#   r$   r%   r8  r8    sI   … Ø#Ó#ô3ó$ó)ó+ó"óð
 òó ðó-óô5r$   r8  )r-   rŽ   r³   ztuple[str, list[str]])r7   zCallable[[T], S | None]r8   rØ   r³   úIterator[S])r7   zCallable[[T], Sequence[S]]r8   rØ   r³   rV  )rE   zCallable[[], str]r³   zIterator[None])r9   r   r³   r   )rN   rŽ   r³   r   )r[   rŽ   r³   rY   r6   )râ   r   r`   zstr | Path | Noner³   r^   )r   éP   )rì   r	   rC   rY   rè   rY   r³   rŽ   )r   )
rì   r	   rC   rY   rè   rY   rú   rY   r³   rŽ   )
rÿ   zdict[Any, Any]rC   rY   rè   rY   rú   rY   r³   rŽ   )
rÿ   z&list[Any] | set[Any] | tuple[Any, ...]rC   rY   rè   rY   rú   rY   r³   rŽ   )rþ   z	list[str]rC   rY   rè   rY   rú   rY   r  rŽ   r  rŽ   r³   rŽ   )?Ú
__future__r   Ú
contextlibÚ	functoolsrU   rÏ   r(   r‚   rB   Údataclassesr   r   Úenumr   r   Úpathlibr   Útypingr	   r
   r   r   r   r   r   Útyping_extensionsr   r   r   Útorchgen.code_templater   Úargparser   Úcollections.abcr   r   r   r„   r…   rr   r�   r‰   r   ÚIDENT_REGEXr2   r3   r4   r;   r=   ÚcontextmanagerrH   ÚcacherO   r\   r^   rã   rí   rë   rö   rø   r  r  r8  r#   r$   r%   ú<module>rf     sn  ðÝ "ã Û Û Û 	Û 	Û 
Û ß ,ß Ý ß T× TÑ Tß <Ñ <å /ñ Ý"ß<Ñ<ñ �X“×'Ñ'Ó)×0Ñ0€Ø× Ñ €	ô
$ˆTô 
$ð  €ó$ñ ˆCƒL€ÙˆCƒL€óóð ×Ñò	ó ð	ñ ñ Ð<Ó=òDó >ðDð ‡�ò/ó ð/ó
4÷SMñ SMðr &*ð
Øð
à"ð
ð ó
ð  Øð5Ø	ð5àð5ð ð5ð 	ó	5ð$ ð	 #Ø	ð #àð #ð ð #ð ð	 #ð
 	ó #ðFDØ
ðDàðDð ðDð ð	Dð
 	óDð(FØ
0ðFàðFð ðFð ð	Fð
 	óFð-Øð-àð-ð ð-ð ð	-ð
 ð-ð 
ð-ð 	ó-÷&BGñ BGôJ,5�˜‘õ ,5r$   