Ë
    Z^(h"C  ã                  óÆ  — 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 d dlmZ erd d	lmZ d d
lm Z m!Z!m"Z"  ee#«      jI                  «       jJ                  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„«       Z/d'd„Z0ejb                  d(d„«       Z2d)d„Z3 G d„ d«      Z4	 d*	 	 	 	 	 d+d„Z5	 	 d,	 	 	 	 	 	 	 d-d„Z6	 d.	 	 	 	 	 	 	 	 	 d/d„Z7	 	 	 	 	 	 	 	 	 	 d0d„Z8	 	 	 	 	 	 	 	 	 	 d1d„Z9	 	 	 	 	 	 	 	 	 	 	 	 	 	 d2d„Z: G d„ d «      Z; G d!„ d"ee*   «      Z<y)3é    )ÚannotationsN)ÚfieldsÚis_dataclass)ÚautoÚEnum)ÚPath)ÚAnyÚCallableÚGenericÚLiteralÚNoReturnÚTYPE_CHECKINGÚTypeVar)Ú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© ó    úL/var/www/skyplay_api_hub/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   6   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   F   s(   è ø€ Øò ˆÙ�‹GˆØ‰=Ø‹Gñùs   ‚“c              #  ó>   K  — |D ]  } | |«      E d {  –—†  Œ y 7 Œ­wr4   r!   )r5   r6   r7   s      r#   Ú	concatMapr;   N   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   V   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   f   s    € Ü
Ð+¬D°«G×,<Ñ,<Ð+=Ð>Ó
?Ð?r"   c                ó,   — t        j                  | «      S r4   )r   Ú	from_file)Útemplate_fns    r#   Ú_read_templaterN   j   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)ÚsrU   s     r#   Ústring_stable_hashr[   p   s7   € Ü�<‰<˜Ÿ™ Ó*¸EÔB×IÑIÓK€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œ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 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-   rN   Ú
substituter^   rJ   )	rg   rM   Ú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})rM   rŒ   )rt   ru   )r_   rd   Úaddrb   r“   rx   )rg   rt   rM   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          
     ó6   — | j                  ||||||||¬«       y )N)Úkey_fnrŒ   Ú
num_shardsrš   Úsharded_keys)Úwrite_sharded_with_template)rg   rt   Úitemsrœ   rŒ   r�   rš   rž   s           r#   Úwrite_shardedzFileManager.write_shardedÊ   s/   € ð 	×(Ñ(ØØØØØ%Ø!ØØ%ð 	)õ 		
r"   c               óÀ  ‡‡— 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 )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 r4   r!   )Úshards   €r#   ú<lambda>z9FileManager.write_sharded_with_template.<locals>.<lambda>  s   ø€ ˜€ r"   r•   )r¦   údict[str, list[str]]r§   r°   ÚreturnÚNone)ÚrangeÚupdater   ÚlistÚcopyrb   r[   ÚrfindÚlenr˜   rd   Údiscardr_   )rg   rt   rM   r    rœ   rŒ   r�   rš   rž   Ú
everythingÚiÚshardsÚ
all_shardsÚkeyrª   ÚitemÚsidrŽ   Údot_posÚbase_filenameÚ	extensionr£   r®   s           `             @r#   rŸ   z'FileManager.write_sharded_with_templateà   sÒ  ù€ ð '1°,Ð%?ˆ
ä+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 #Õ&ð	'ð —.‘. Ó%ˆØ�bŠ=Ü˜(“mˆGØ   'Ð*ˆØ˜W˜XÐ&ˆ	àò 	ˆEØ˜ZÑ(ˆHØ×$Ñ$Ø �/ ( ¨I¨;Ð7ØÛõð	ð 	�‰×ÑØ×ÑÐ   - °
¸9¸+ÐFõ	
ùòg(
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²   )rM   r^   rŒ   ú"Callable[[], str | dict[str, Any]]r±   r^   )rt   r^   rM   r^   rŒ   rÒ   r±   r²   )rt   r^   rŒ   rÒ   r±   r²   )rt   r^   r    úIterable[T]rœ   úCallable[[T], str]rŒ   ú#Callable[[T], dict[str, list[str]]]r�   rX   rš   údict[str, Any] | Nonerž   rc   r±   r²   )rt   r^   rM   r^   r    rÓ   rœ   rÔ   rŒ   rÕ   r�   rX   rš   rÖ   rž   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]   r]   x   sf  … ØÓØÓØƒMØÓóó"ðØðØ.Pðà	óðBOàðOð ðOð 9ð	Oð
 
óOð CàðCð 9ðCð 
ó	Cð +/ñ
àð
ð ð
ð
 #ð
ð :ð
ð ð
ð (ð
ð ð
ð 
ó
ð> +/ñB
àðB
ð ðB
ð ð	B
ð #ðB
ð :ðB
ð ðB
ð (ðB
ð ðB
ð 
óB
óH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Ý   7  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ç   B  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å   P  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ð   s  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ò   ‡  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ˆÜ�>Ó" 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  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   )r1  r€   Úfromkeys)rg   Úiterables     r#   rh   zOrderedSet.__init__í  s   € ØÐØˆD�LäŸ=™=¨Ó2ˆD�Lr"   c                ó   — || j                   v S r4   ©r1  ©rg   r¿   s     r#   Ú__contains__zOrderedSet.__contains__ó  s   € Ø�t—|‘|Ð#Ð#r"   c                óH   — t        | j                  j                  «       «      S r4   )Úiterr1  ÚkeysrÐ   s    r#   Ú__iter__zOrderedSet.__iter__ö  s   € Ü�D—L‘L×%Ñ%Ó'Ó(Ð(r"   c                óN   — | j                   j                  |j                   «       y r4   )r1  r´   )rg   r    s     r#   r´   zOrderedSet.updateù  s   € Ø�‰×Ñ˜EŸM™MÕ*r"   c                ó"   — d | j                   |<   y r4   r6  r7  s     r#   r–   zOrderedSet.addü  s   € Ø!ˆ�‰�TÒr"   c                óX   — t        «       }| j                  j                  «       |_        |S r4   )r0  r1  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   )r0  rB  ©rg   Úothers     r#   Ú__or__zOrderedSet.__or__  s   € Ü×Ñ  eÓ,Ð,r"   c                ó(   — | j                  |«       | S r4   )r´   rD  s     r#   Ú__ior__zOrderedSet.__ior__  s   € Ø�‰�EÔØˆr"   c                ó    — t        |t        «      r| j                  |j                  k(  S t        | j                  j	                  «       «      |k(  S r4   )r   r0  r1  rf   r;  rD  s     r#   Ú__eq__zOrderedSet.__eq__  s<   € Ü�eœZÔ(Ø—<‘< 5§=¡=Ñ0Ð0ä�t—|‘|×(Ñ(Ó*Ó+¨uÑ4Ð4r"   r4   )r4  zIterable[T] | Noner±   r²   )r¿   r1   r±   ra   )r±   zIterator[T])r    úOrderedSet[T]r±   r²   )r¿   r1   r±   r²   )r±   rK  )rB   rK  r±   rK  )rE  rK  r±   rK  )rE  rK  r±   r   )rE  Úobjectr±   ra   )r   r   r   rØ   rh   r8  r<  r´   r–   r¶   r-  rB  rF  rH  rJ  r!   r"   r#   r0  r0  ê  sI   … Ø#Ó#ô3ó$ó)ó+ó"óð
 òó ðó-óô5r"   r0  )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±   rM  )rC   zCallable[[], str]r±   zIterator[None])r7   r   r±   r   )rM   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   Útyping_extensionsr   Útorchgen.code_templater   Úargparser   Úcollections.abcr   r   r   r„   r…   Úparentr�   r   ÚIDENT_REGEXr0   r1   r2   r9   r;   ÚcontextmanagerrF   rJ   ÚcacherN   r[   r]   rÝ   rç   rå   rð   rò   r   r  r0  r!   r"   r#   ú<module>r^     sG  ðÝ "ã Û Û Û 	Û 	Û 
Û ß ,ß Ý ß T× TÑ TÝ "å /ñ Ý"ß<Ñ<ñ �‹N×#Ñ#Ó%×,Ñ,×3Ñ3€	ô
$ˆTô 
$ð  €ó$ñ ˆCƒL€ÙˆCƒL€óóð ×Ñò	ó ð	ó@ð ‡�ò/ó ð/ó
4÷{Mñ {Mð@ 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"   