§
    �ŠtjBB  ã                  ó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
 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#¦  «         $                    ¦   «         j%        Z&e&j%        Z' G d„ de¦  «        Z(dZ)dDd„Z* ed¦  «        Z+ ed¦  «        Z,dEd„Z-dFd„Z.ej/        dGd!„¦   «         Z0ej1        dHd$„¦   «         Z2dId'„Z3 G d(„ d)¦  «        Z4	 dJdKd.„Z5	 	 dLdMd4„Z6dNd8„Z7dOd:„Z8dPd?„Z9 G d@„ dA¦  «        Z: G dB„ dCee+         ¦  «        Z;dS )Qé    )Ú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	dS )ÚTargetN)
Ú__name__Ú
__module__Ú__qualname__r   Ú
DEFINITIONÚDECLARATIONÚREGISTRATIONÚANONYMOUS_DEFINITIONÚNAMESPACED_DEFINITIONÚNAMESPACED_DECLARATION© ó    úL/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torchgen/utils.pyr   r   %   sU   € € € € € à�‘”€JØ�$‘&”&€Kà�4‘6”6€Là˜4™6œ6Ðà ˜D™FœFÐØ!˜T™VœVÐÐÐr"   r   z(^|\W){}($|\W)ÚschemaÚstrÚreturnútuple[str, list[str]]c                ó²   — t          j        d| ¦  «        }|€t          d| › �¦  «        ‚|                     ¦   «         \  }}}||                     d¦  «        fS )Nz(\w+)(\.\w+)?\((.*)\)zUnsupported function schema: ú, )ÚreÚmatchÚRuntimeErrorÚgroupsÚsplit)r$   ÚmÚnameÚ_Úparamss        r#   Úsplit_name_paramsr3   8   sZ   € Ý
ŒÐ)¨6Ñ2Ô2€AØ€yÝÐC¸6ÐCÐCÑDÔDÐDØ—h’h‘j”j�O€Dˆ!ˆVØ�—’˜dÑ#Ô#Ð#Ð#r"   ÚTÚSÚfuncúCallable[[T], S | None]ÚxsúIterable[T]úIterator[S]c              #  ó6   K  — |D ]} | |¦  «        }|�|V — Œd S ©Nr!   )r6   r8   ÚxÚrs       r#   ÚmapMayber?   H   s;   è è € Øð ð ˆØˆD�‰GŒGˆØˆ=ØˆGˆGˆGøðð r"   úCallable[[T], Sequence[S]]c              #  ó6   K  — |D ]} | |¦  «        E d {V —† Œd S r<   r!   )r6   r8   r=   s      r#   Ú	concatMaprB   P   sB   è è € Øð ð ˆØ�4˜‘7”7ÐÐÐÐÐÐÐÐðð r"   Úmsg_fnúCallable[[], str]úIterator[None]c              #  óÞ   K  — 	 d V — d S # t           $ rX} | ¦   «         }t          j        |d¦  «        }|j        r|j        d         › d|› �n|}|f|j        dd …         z   |_        ‚ d }~ww xY w)Nz  r   ú
é   )Ú	ExceptionÚtextwrapÚindentÚargs)rC   ÚeÚmsgs      r#   ÚcontextrO   X   s“   è è € ðØˆˆˆˆˆøÝð ð ð àˆf‰hŒhˆÝŒo˜c 4Ñ(Ô(ˆØ'(¤vÐ6�”˜”Ð#Ð#˜cÐ#Ð#Ð#°3ˆØ�˜!œ&   œ*Ñ$ˆŒØøøøøðøøøs   „
 Š
A,”AA'Á'A,Útemplate_fnr   c                ó*   — t          j        | ¦  «        S r<   )r   Ú	from_file)rP   s    r#   Ú_read_templaterS   e   s   € åÔ! +Ñ.Ô.Ð.r"   ÚsÚintc                ó°   — t          j        |                      d¦  «        d¬¦  «                             ¦   «         }t                               |d¬¦  «        S )NÚlatin1F)ÚusedforsecurityÚlittle)Ú	byteorder)ÚhashlibÚsha1ÚencodeÚdigestrU   Ú
from_bytes)rT   r\   s     r#   Ústring_stable_hashr`   k   sD   € ÝŒ<˜Ÿš Ñ*Ô*¸EÐBÑBÔB×IÒIÑKÔK€DÝ�>Š>˜$¨(ˆ>Ñ3Ô3Ð3r"   c                  óz   — 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d0d&„ZdS )1ÚFileManagerÚinstall_dirú
str | PathÚtemplate_dirÚdry_runÚboolr&   ÚNonec                óŠ   — t          |¦  «        | _        t          |¦  «        | _        t          ¦   «         | _        || _        d S r<   )r   rc   re   ÚsetÚfilesrf   )Úselfrc   re   rf   s       r#   Ú__init__zFileManager.__init__t   s:   € õ   Ñ,Ô,ˆÔÝ  Ñ.Ô.ˆÔÝ #¡¤ˆŒ
ØˆŒˆˆr"   úfrozenset[str]c                ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc                ó6   — h | ]}|                      ¦   «         ’ŒS r!   ©Úas_posix©Ú.0Úfiles     r#   ú	<setcomp>z(FileManager.filenames.<locals>.<setcomp>�   s    € ÐAÐAÐA¨d˜$Ÿ-š-™/œ/ÐAÐAÐAr"   )Ú	frozensetrk   ©rl   s    r#   Ú	filenameszFileManager.filenames   s!   € åÐAÐA°d´jÐAÑAÔAÑBÔBÐBr"   ÚfilenameÚcontentsr%   c                óî   — t          |¦  «        }d }	 |                     d¬¦  «        }n# t          $ r Y nw xY w||k    r5|j                             dd¬¦  «         |                     |d¬¦  «         d S d S )Nzutf-8)ÚencodingT)ÚparentsÚexist_ok)r   Ú	read_textÚOSErrorÚparentÚmkdirÚ
write_text)rl   rz   r{   ru   Úold_contentss        r#   Ú_write_if_changedzFileManager._write_if_changedƒ   s–   € Ý�H‰~Œ~ˆØ#'ˆð	ØŸ>š>°7˜>Ñ;Ô;ˆLˆLøÝð 	ð 	ð 	ØˆDð	øøøà�|Ò#Ð#àŒK×Ò d°TÐÑ:Ô:Ð:Ø�OŠO˜H¨wˆOÑ7Ô7Ð7Ð7Ð7ð $Ð#s   “* ª
7¶7rP   Úenv_callableú"Callable[[], str | dict[str, Any]]c                ó*  — t          |¦  «                             ¦   «         rt          d|› �¦  «        ‚| j        |z  } |¦   «         }t	          |t
          ¦  «        �rd|vrÅt          dz  }	 t          t          j        d         j	        p|¦  «         
                    ¦   «         }n+# t          t          f$ r | 
                    ¦   «         }Y nw xY w	 |                     t          ¦  «                             ¦   «         }n# t           $ r
 |j        }Y nw xY wi |¥ddd|› d|› �z   i¥}t%          |¦  «        }|                     |¦  «        }	t)          j        dd	|	t(          j        ¬
¦  «        S t	          |t.          ¦  «        r|S t1          |¦  «         d S )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ÚAssertionErrorre   Ú
isinstanceÚdictÚTORCHGEN_ROOTÚsysÚmodulesÚ__file__ÚabsoluteÚKeyErrorÚAttributeErrorÚrelative_toÚ	REPO_ROOTrr   Ú
ValueErrorr0   rS   Ú
substituter*   ÚsubÚVERBOSEr%   r   )
rl   rP   r‡   Útemplate_pathÚenvÚgenerator_defaultÚ	generatorÚgenerator_pathÚtemplateÚsubstitute_outs
             r#   Úsubstitute_with_templatez$FileManager.substitute_with_template�   sá  € õ
 �ÑÔ×(Ò(Ñ*Ô*ð 	QÝ Ð!OÀ+Ð!OÐ!OÑPÔPÐPØÔ)¨KÑ7ˆØˆl‰nŒnˆÝ�c�4Ñ Ô ñ '	Ø"¨#Ð-Ð-Ý$1°HÑ$<Ð!ð=Ý $Ýœ JÔ/Ô8ÐMÐ<Mñ!ô !ç’h‘j”jð �Iøõ !¥.Ð1ð =ð =ð =Ø 1× :Ò :Ñ <Ô <�I�I�Ið=øøøð4Ø%.×%:Ò%:½9Ñ%EÔ%E×%NÒ%NÑ%PÔ%P�N�NøÝ!ð 4ð 4ð 4Ø%.¤^�N�N�Nð4øøøðØðà'ØÐQ¨nÐQÐQÀKÐQÐQÑQðð �õ & mÑ4Ô4ˆHØ%×0Ò0°Ñ5Ô5ˆNõ ”6ðð "ØÝ”jðñ ô ð õ �c�3ÑÔð 	ØˆJÝ�SÑÔÐÐÐs$   Á-8B& Â&%CÃCÃ,C? Ã?DÄDc                ó\  — t          |¦  «        }|                     ¦   «         rt          d|› �¦  «        ‚| j        |z  }|| j        v rt          d|› �¦  «        ‚| j                             |¦  «         | j        s0|                      ||¬¦  «        }|                      ||¬¦  «         d S d S )Núfilename must be relative: zduplicate file write )rP   r‡   )rz   r{   )	r   rŽ   r�   rc   rk   Úaddrf   r¦   r†   )rl   rz   rP   r‡   ru   r¥   s         r#   Úwrite_with_templatezFileManager.write_with_templateÅ   sØ   € õ ˜‘>”>ˆØ×ÒÑ!Ô!ð 	KÝ Ð!I¸xÐ!IÐ!IÑJÔJÐJØÔ (Ñ*ˆØ�4”:ÐÐÝ Ð!?¸Ð!?Ð!?Ñ@Ô@Ð@ØŒ
�Š�tÑÔÐØŒ|ð 	KØ!×:Ò:Ø'Ø)ð ;ñ ô ˆNð ×"Ò"¨D¸>Ð"ÑJÔJÐJÐJÐJð	Kð 	Kr"   c                ó4   — |                       |||¦  «         d S r<   )rª   )rl   rz   r‡   s      r#   ÚwritezFileManager.writeÙ   s"   € ð
 	× Ò  ¨8°\ÑBÔBÐBÐBÐBr"   N)Úbase_envÚitemsr9   Úkey_fnúCallable[[T], str]ú#Callable[[T], dict[str, list[str]]]Ú
num_shardsrU   r­   údict[str, Any] | NoneÚsharded_keysúset[str]c          
     ó@   — |                       ||||||||¬¦  «         d S )N)r¯   r‡   r²   r­   r´   )Úwrite_sharded_with_template)rl   rz   r®   r¯   r‡   r²   r­   r´   s           r#   Úwrite_shardedzFileManager.write_shardedà   sC   € ð 	×(Ò(ØØØØØ%Ø!ØØ%ð 	)ñ 		
ô 		
ð 		
ð 		
ð 		
r"   c               ó\  ‡‡— t          |¦  «        }	|	                     ¦   «         rt          d|› �¦  «        ‚ddi}
d„ t          |¦  «        D ¦   «         }|
g|z   }|�|D ]Š‰                     |¦  «         Œ‰D ]X}|D ]SŠ|‰v rHt          ‰|         t          ¦  «        st          d¦  «        ‚‰|                              ¦   «         ‰|<   ŒNg ‰|<   ŒTŒYdˆfd„}| j        rd}|D ]H} ||¦  «        }t          |¦  «        |z  } ||¦  «        } |||         |¦  «          ||
|¦  «         ŒI|D ]@Š‰d         }|  
                    |	                     |	j        › |› �¦  «        |ˆfd„¦  «         ŒA| j                             | j        |	                     |	j        › d�¦  «        z  ¦  «         d S )Nr¨   Úshard_idÚ
Everythingc                ó   — g | ]	}d d|› �i‘Œ
S )rº   r1   r!   )rt   Úis     r#   ú
<listcomp>z;FileManager.write_sharded_with_template.<locals>.<listcomp>  s0   € ð (
ð (
ð (
Ø&'ˆZ˜˜Q˜˜Ð!ð(
ð (
ð (
r"   z'sharded keys in base_env must be a listÚintoúdict[str, list[str]]Úfrom_r&   rh   c                óˆ   •— |                      ¦   «         D ]+\  }}|‰vrt          d|› �¦  «        ‚| |xx         |z  cc<   Œ,d S )Nzundeclared sharded key )r®   r�   )r¿   rÁ   ÚkÚvr´   s       €r#   Ú	merge_envz:FileManager.write_sharded_with_template.<locals>.merge_env  sa   ø€ ØŸš™œð ð ‘��1Ø˜LÐ(Ð(Ý(Ð)FÀ1Ð)FÐ)FÑGÔGÐGØ�Q��”˜1‘��‘�ðð r"   r!   c                 ó   •— ‰ S r<   r!   )Úshards   €r#   ú<lambda>z9FileManager.write_sharded_with_template.<locals>.<lambda>/  s   ø€ ˜€ r"   )r¿   rÀ   rÁ   rÀ   r&   rh   )r   rŽ   r�   ÚrangeÚupdater�   ÚlistÚcopyrf   r`   rª   Ú	with_stemÚstemrk   Údiscardrc   )rl   rz   rP   r®   r¯   r‡   r²   r­   r´   ru   Ú
everythingÚshardsÚ
all_shardsÚkeyrÅ   ÚitemÚsidr    rº   rÇ   s           `          @r#   r·   z'FileManager.write_sharded_with_templateö   sM  øø€ õ �H‰~Œ~ˆØ×ÒÑÔð 	KÝ Ð!I¸xÐ!IÐ!IÑJÔJÐJØ&0°,Ð%?ˆ
ð(
ð (
Ý+0°Ñ+<Ô+<ð(
ñ (
ô (
ˆð !�\ FÑ*ˆ
àÐØ#ð 'ð '�Ø—’˜XÑ&Ô&Ð&Ð&àð 	$ð 	$ˆCØ#ð $ð $�Ø˜%�<�<Ý% e¨C¤jµ$Ñ7Ô7ð XÝ,Ð-VÑWÔWÐWØ!& s¤§¢Ñ!2Ô!2�E˜#‘J�Jà!#�E˜#‘J�Jð$ð	ð 	ð 	ð 	ð 	ð 	ð Œ<ð 	àˆEàð 	'ð 	'ˆDØ�&˜‘,”,ˆCÝ$ SÑ)Ô)¨JÑ6ˆCØ�,˜tÑ$Ô$ˆCàˆI�f˜S”k 3Ñ'Ô'Ð'ØˆI�j #Ñ&Ô&Ð&Ð&àð 	ð 	ˆEØ˜ZÔ(ˆHØ×$Ò$Ø—’ $¤)Ð7¨XÐ7Ð7Ñ8Ô8ØØ���ñô ð ð ð 	Œ
×Ò˜4Ô+¨d¯nªnÀÄ	Ð=UÐ=UÐ=UÑ.VÔ.VÑVÑWÔWÐWÐWÐWr"   Úvariable_namec                ó¢   — d                      d|gd„ t          | j        ¦  «        D ¦   «         ¢d‘R ¦  «        }|                      ||¦  «         dS )zSWrite a file containing the list of all outputs which are generated by this script.rG   zset(c              3  óF   K  — | ]}d |                      ¦   «         › d�V — ŒdS )z    "ú"Nrq   rs   s     r#   ú	<genexpr>z,FileManager.write_outputs.<locals>.<genexpr><  s6   è è € ÐLÐL°Ð,˜$Ÿ-š-™/œ/Ð,Ð,Ð,ÐLÐLÐLÐLÐLÐLr"   ú)N)ÚjoinÚsortedrk   r†   )rl   rÖ   rz   Úcontents       r#   Úwrite_outputszFileManager.write_outputs5  sp   € à—)’)àØðð MÐL½ÀÄ
Ñ9KÔ9KÐLÑLÔLð	ð
 ðð ñ
ô 
ˆð 	×Ò˜x¨Ñ1Ô1Ð1Ð1Ð1r"   c                ó�   — t           j                             | j        t           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Úrelpathre   Údirnamer•   rx   s    r#   Útemplate_dir_for_commentsz%FileManager.template_dir_for_commentsB  s+   € õ Œw�Š˜tÔ0µ"´'·/²/Å(Ñ2KÔ2KÑLÔLÐLr"   )rc   rd   re   rd   rf   rg   r&   rh   )r&   rn   )rz   rd   r{   r%   r&   rh   )rP   rd   r‡   rˆ   r&   r%   )rz   rd   rP   rd   r‡   rˆ   r&   rh   )rz   rd   r‡   rˆ   r&   rh   )rz   rd   r®   r9   r¯   r°   r‡   r±   r²   rU   r­   r³   r´   rµ   r&   rh   )rz   rd   rP   rd   r®   r9   r¯   r°   r‡   r±   r²   rU   r­   r³   r´   rµ   r&   rh   )rÖ   r%   rz   rd   r&   rh   ©r&   r%   )r   r   r   rm   Úpropertyry   r†   r¦   rª   r¬   r¸   r·   rß   rå   r!   r"   r#   rb   rb   s   s   € € € € € ð	ð 	ð 	ð 	ð ðCð Cð Cñ „XðCð
8ð 
8ð 
8ð 
8ð3ð 3ð 3ð 3ðjKð Kð Kð Kð(Cð Cð Cð Cð +/ð
ð 
ð 
ð 
ð 
ð 
ð> +/ð=Xð =Xð =Xð =Xð =Xð =Xð~2ð 2ð 2ð 2ðMð Mð Mð Mð Mð Mr"   rb   Úoptionsr   rc   ústr | Path | Nonec                ó�   — t           j                             | j        d¦  «        }|r|n| j        }t          ||| j        ¬¦  «        S )NÚ	templates)rc   re   rf   )rá   râ   rÜ   Úsource_pathrc   rb   rf   )rè   rc   re   s      r#   Úmake_file_managerrí   L  sO   € õ ”7—<’< Ô 3°[ÑAÔA€LØ!,ÐE�+�+°'Ô2E€KÝØØ!Ø”ðñ ô ð r"   éP   Úobjr
   rK   Úwidthc                ó$   — t          | ||¦  «        S r<   r   )rï   rK   rð   s      r#   Údataclass_reprrò   Z  s   € õ
 �3˜ Ñ&Ô&Ð&r"   Úattrúdict[Any, Any]Úcurr_indentc           
     óD  — ||dz   z  }g }|                       ¦   «         D ]n\  }}t          |¦  «        }t          |¦  «        r"t          ||||t	          |¦  «        z   ¦  «        nt          |¦  «        }|                     |› d|› �¦  «         Œot          ||||dd¦  «        S )Né   z: Ú{Ú})r®   Úreprr   r	   ÚlenÚappendÚ_format)	ró   rK   rð   rõ   Ú	dict_reprrÃ   rÄ   Úk_reprÚv_strs	            r#   Ú_format_dictr  b  s¸   € ð �6˜A‘:Ñ€KØ€IØ—
’
‘”ð /ð /‰ˆˆ1Ý�a‘”ˆõ ˜A‰Œð�G�A�v˜u kµC¸±K´KÑ&?Ñ@Ô@Ð@å�a‘”ð 	ð
 	×Ò˜FÐ-Ð- eÐ-Ð-Ñ.Ô.Ð.Ð.å�9˜f e¨[¸#¸sÑCÔCÐCr"   ú&list[Any] | set[Any] | tuple[Any, ...]c                ó˜   ‡‡‡— ‰‰dz   z  Šˆˆˆfd„| D ¦   «         }t          | t          ¦  «        rdnd\  }}t          |‰‰‰||¦  «        S )NrH   c                óp   •— g | ]2}t          |¦  «        rt          |‰‰‰¦  «        nt          |¦  «        ‘Œ3S r!   )r   r	   rú   )rt   Úlrõ   rK   rð   s     €€€r#   r¾   z _format_list.<locals>.<listcomp>}  sM   ø€ ð ð ð àõ 3?¸q±/´/ÐN���6˜5 +Ñ.Ô.Ð.ÅtÈAÁwÄwðð ð r"   )ú[ú])ú(rÛ   )r�   rË   rý   )ró   rK   rð   rõ   Ú	list_reprÚstartÚends    ```   r#   Ú_format_listr  v  s}   øøø€ ð �6˜A‘:Ñ€Kðð ð ð ð ð àðñ ô €Iõ  *¨$µÑ5Ô5ÐE��¸:�J€Eˆ3Ý�9˜f e¨[¸%ÀÑEÔEÐEr"   Ú
fields_strú	list[str]r
  r  c                ó¬   — d\  }}t          t          | ¦  «        ¦  «        |k    rd}d|z  }d|z  }d|› |› �                     | ¦  «        }	|› |› |	› |› �S )N)Ú r  rG   ú r)   )rû   rú   rÜ   )
r  rK   rð   rõ   r
  r  Ú	delimiterÚcurr_indent_strÚ
indent_strÚbodys
             r#   rý   rý   …  s|   € ð "(Ñ€Iˆå
�4�
ÑÔÑÔ Ò%Ð%Øˆ	Ø Ñ+ˆà�v‘€JØ,�	Ð,˜?Ð,Ð,×1Ò1°*Ñ=Ô=€DØÐ,�ZÐ, Ð, sÐ,Ð,Ð,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dS )Ú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
    r  é   Únamespace_strr%   Úentity_nameÚ	max_levelrU   r&   rh   c                óV  — |                      d¦  «        }t          |¦  «        |k    rt          d|› d|› d�¦  «        ‚|| _        d                     d„ |D ¦   «         ¦  «        | _        d                     d„ t          |¦  «        D ¦   «         ¦  «        | _        || _        || _	        d S )Nú::z"Codegen doesn't support more than z# level(s) of custom namespace. Got ú.rG   c                ó   — g | ]}d |› d�‘Œ	S )z
namespace z {r!   ©rt   Úns     r#   r¾   z,NamespaceHelper.__init__.<locals>.<listcomp>´  s$   € Ð#PÐ#PÐ#P¸AÐ$7°Ð$7Ð$7Ð$7Ð#PÐ#PÐ#Pr"   c                ó   — g | ]}d |› �‘ŒS )z} // namespace r!   r   s     r#   r¾   z,NamespaceHelper.__init__.<locals>.<listcomp>¶  s!   € ÐFÐFÐF¨Ð# Ð#Ð#ÐFÐFÐFr"   )
r.   rû   r�   Úcpp_namespace_rÜ   Ú	prologue_ÚreversedÚ	epilogue_Únamespaces_Úentity_name_)rl   r  r  r  Úcpp_namespacess        r#   rm   zNamespaceHelper.__init__¦  sÑ   € ð '×,Ò,¨TÑ2Ô2ˆÝˆ~ÑÔ Ò*Ð*Ý ð:°Yð :ð :Ø)6ð:ð :ð :ñô ð ð ,ˆÔØŸšÐ#PÐ#PÀÐ#PÑ#PÔ#PÑQÔQˆŒØŸšØFÐF­X°nÑ-EÔ-EÐFÑFÔFñ
ô 
ˆŒð *ˆÔØ'ˆÔÐÐr"   Únamespaced_entityc                óš   — |                       d¦  «        }|d         }d                     |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  )r*  r  Únamesr  r  s        r#   Úfrom_namespaced_entityz&NamespaceHelper.from_namespaced_entity»  sW   € ð "×'Ò'¨Ñ-Ô-ˆØ˜B”iˆØŸ	š	 %¨¨¨¤*Ñ-Ô-ˆÝØ'°[ÈIð
ñ 
ô 
ð 	
r"   c                ó   — | j         S r<   )r$  rx   s    r#   ÚprologuezNamespaceHelper.prologueÊ  ó
   € àŒ~Ðr"   c                ó   — | j         S r<   )r&  rx   s    r#   ÚepiloguezNamespaceHelper.epilogueÎ  r1  r"   c                ó   — | j         S r<   )r(  rx   s    r#   r  zNamespaceHelper.entity_nameÒ  s   € àÔ Ð r"   Údefaultc                ó"   — | j         r| j         n|S )z£
        Return the namespace string from joining all the namespaces by "::" (hence no leading "::").
        Return default if namespace string is empty.
        )r#  )rl   r5  s     r#   Úget_cpp_namespacez!NamespaceHelper.get_cpp_namespace×  s   € ð
 '+Ô&9ÐFˆtÔ"Ð"¸wÐFr"   N)r  r  )r  r%   r  r%   r  rU   r&   rh   )r  )r*  r%   r  rU   r&   r  ræ   )r  )r5  r%   r&   r%   )r   r   r   Ú__doc__rm   Ústaticmethodr.  rç   r0  r3  r  r7  r!   r"   r#   r  r  ˜  sé   € € € € € ðð ð  Øð	(ð (ð (ð (ð (ð* ð ð
ð 
ð 
ð 
ñ „\ð
ð ðð ð ñ „Xðð ðð ð ñ „Xðð ð!ð !ð !ñ „Xð!ðGð Gð Gð Gð Gð Gð Gr"   r  c                  ó|   — 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dS )'Ú
OrderedSetzdict[T, None]ÚstorageNÚiterableúIterable[T] | Noner&   rh   c                óZ   — |€	i | _         d S t                               |¦  «        | _         d S r<   )r<  r‘   Úfromkeys)rl   r=  s     r#   rm   zOrderedSet.__init__â  s*   € ØÐØˆDŒLˆLˆLåŸ=š=¨Ñ2Ô2ˆDŒLˆLˆLr"   rÔ   r4   rg   c                ó   — || j         v S r<   ©r<  ©rl   rÔ   s     r#   Ú__contains__zOrderedSet.__contains__è  s   € Ø�t”|Ð#Ð#r"   úIterator[T]c                óN   — t          | j                             ¦   «         ¦  «        S r<   )Úiterr<  Úkeysrx   s    r#   Ú__iter__zOrderedSet.__iter__ë  s   € Ý�D”L×%Ò%Ñ'Ô'Ñ(Ô(Ð(r"   r®   úOrderedSet[T]c                óD   — | j                              |j         ¦  «         d S r<   )r<  rÊ   )rl   r®   s     r#   rÊ   zOrderedSet.updateî  s    € ØŒ×Ò˜EœMÑ*Ô*Ð*Ð*Ð*r"   c                ó   — d | j         |<   d S r<   rB  rC  s     r#   r©   zOrderedSet.addñ  s   € Ø!ˆŒ�TÑÐÐr"   c                ó^   — t          ¦   «         }| j                             ¦   «         |_        |S r<   )r;  r<  rÌ   )rl   Úrets     r#   rÌ   zOrderedSet.copyô  s%   € Ý'™\œ\ˆØ”l×'Ò'Ñ)Ô)ˆŒØˆ
r"   rL   c                 ó~   — | d                               ¦   «         }| dd …         D ]}|                     |¦  «         Œ|S )Nr   rH   )rÌ   rÊ   )rL   rN  rT   s      r#   ÚunionzOrderedSet.unionù  s@   € à�1Œg�lŠl‰nŒnˆØ�a�b�b”ð 	ð 	ˆAØ�JŠJ�q‰MŒMˆMˆMØˆ
r"   Úotherc                ó8   — t                                | |¦  «        S r<   )r;  rP  ©rl   rQ  s     r#   Ú__or__zOrderedSet.__or__   s   € Ý×Ò  eÑ,Ô,Ð,r"   r   c                ó0   — |                       |¦  «         | S r<   )rÊ   rS  s     r#   Ú__ior__zOrderedSet.__ior__  s   € Ø�Š�EÑÔÐØˆr"   Úobjectc                ó    — t          |t          ¦  «        r| j        |j        k    S t          | j                             ¦   «         ¦  «        |k    S r<   )r�   r;  r<  rj   rH  rS  s     r#   Ú__eq__zOrderedSet.__eq__  sD   € Ý�e�ZÑ(Ô(ð 	5Ø”< 5¤=Ò0Ð0å�t”|×(Ò(Ñ*Ô*Ñ+Ô+¨uÒ4Ð4r"   r<   )r=  r>  r&   rh   )rÔ   r4   r&   rg   )r&   rE  )r®   rJ  r&   rh   )rÔ   r4   r&   rh   )r&   rJ  )rL   rJ  r&   rJ  )rQ  rJ  r&   rJ  )rQ  rJ  r&   r   )rQ  rW  r&   rg   )r   r   r   Ú__annotations__rm   rD  rI  rÊ   r©   rÌ   r9  rP  rT  rV  rY  r!   r"   r#   r;  r;  ß  sû   € € € € € € ØÐÐÑð3ð 3ð 3ð 3ð 3ð$ð $ð $ð $ð)ð )ð )ð )ð+ð +ð +ð +ð"ð "ð "ð "ðð ð ð ð
 ðð ð ñ „\ðð-ð -ð -ð -ðð ð ð ð5ð 5ð 5ð 5ð 5ð 5r"   r;  )r$   r%   r&   r'   )r6   r7   r8   r9   r&   r:   )r6   r@   r8   r9   r&   r:   )rC   rD   r&   rE   )rP   r%   r&   r   )rT   r%   r&   rU   r<   )rè   r   rc   ré   r&   rb   )r   rî   )rï   r
   rK   rU   rð   rU   r&   r%   )
ró   rô   rK   rU   rð   rU   rõ   rU   r&   r%   )
ró   r  rK   rU   rð   rU   rõ   rU   r&   r%   )r  r  rK   rU   rð   rU   rõ   rU   r
  r%   r  r%   r&   r%   )<Ú
__future__r   Ú
contextlibÚ	functoolsr[   rá   r*   r“   rJ   Údataclassesr   Úenumr   r   Úpathlibr   Úpprintr	   Útypingr
   r   r   r   Útyping_extensionsr   r   Útorchgen.code_templater   Úargparser   Úcollections.abcr   r   r   r   r•   r–   r‚   r’   rš   r   ÚIDENT_REGEXr3   r4   r5   r?   rB   ÚcontextmanagerrO   ÚcacherS   r`   rb   rí   rò   r  r  rý   r  r;  r!   r"   r#   ú<module>rj     so  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0à /Ð /Ð /Ð /Ð /Ð /ð ð GØ"Ð"Ð"Ð"Ð"Ð"ØFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFð ��X‘”×'Ò'Ñ)Ô)Ô0€ØÔ €	ð
$ð 
$ð 
$ð 
$ð 
$ˆTñ 
$ô 
$ð 
$ð  €ð$ð $ð $ð $ð €GˆC�L„L€Ø€GˆC�L„L€ðð ð ð ðð ð ð ð Ôð	ð 	ð 	ñ Ôð	ð „ð/ð /ð /ñ „ð/ð
4ð 4ð 4ð 4ðUMð UMð UMð UMð UMñ UMô UMð UMðv &*ð
ð 
ð 
ð 
ð 
ð  Øð'ð 'ð 'ð 'ð 'ðDð Dð Dð Dð(Fð Fð Fð Fð-ð -ð -ð -ð&DGð DGð DGð DGð DGñ DGô DGð DGðN,5ð ,5ð ,5ð ,5ð ,5�˜”ñ ,5ô ,5ð ,5ð ,5ð ,5r"   