Ë
    ÃÓ^jO  ã            
       ó   — U d dl Z d dlZd dlZd dlmZmZ d dlmZ d dlm	Z	 d dl
mZ d dlZi i i i i i i dœi i i i i i i i dœdœZeeeee	f   f   ed	<    G d
„ de«      Zee	df   Zd„ Zdefd„Z ed¬«       G d„ d«      «       Zi Zeeef   ed<    e«       Zee   ed<   i Zeeee   f   ed<   i Zeeee   f   ed<   deddfd„Zd„ Zd„ Zd„ Z d„ Z!y)é    N)Ú	dataclassÚfield)ÚEnum)ÚAny)Ú
ModuleType)Úcondzdynamic-shapezescape-hatchÚmapzdynamic-valueÚoperatorÚmutation)ÚassertÚbuiltinÚclosurezcontext-managerzcontrol-flowzdata-structurezstandard-libraryzobject-model)ÚtorchÚpythonÚ_TAGSc                   ó   — e Zd ZdZdZdZy)ÚSupportLevelz[
    Indicates at what stage the feature
    used in the example is handled in export.
    é   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	SUPPORTEDÚNOT_SUPPORTED_YET© ó    ú`/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/_export/db/case.pyr   r   #   s   „ ñð
 €IØÑr   r   .c                 óü   — t        | t        «      st        dt        | «      › �«      ‚t        |t        «      st        dt        |«      › �«      ‚|D ])  }t        |t
        «      rŒt        dt        |«      › �«      ‚ y )Nz(Expecting args type to be a tuple, got: z)Expecting kwargs type to be a dict, got: z+Expecting kwargs keys to be a string, got: )Ú
isinstanceÚtupleÚ
ValueErrorÚtypeÚdictÚstr)ÚargsÚkwargsÚkeys      r   Úcheck_inputs_typer(   0   s„   € Ü�dœEÔ"ÜØ6´t¸D³z°lÐCó
ð 	
ô �fœdÔ#ÜØ7¼¸V»°~ÐFó
ð 	
ð ò ˆÜ˜#œsÕ#ÜØ=¼dÀ3»i¸[ÐIóð ñr   Útagc                 óÜ   — | j                  d«      }t        }|D ]P  }t        |«      t        t        j                  dz   «      k  st        d|› �«      ‚||v r||   }ŒCt        d| › d�«      ‚ y )Nú.ú-z!Tag contains invalid characters: zTag z! is not found in registered tags.)Úsplitr   ÚsetÚstringÚascii_lowercaseÚAssertionErrorr!   )r)   ÚpartsÚtÚparts       r   Ú_validate_tagr5   ?   sy   € Ø�I‰I�c‹N€EÜ€AØò LˆÜ�4‹yœC¤× 6Ñ 6¸Ñ <Ó=Ò=Ü Ð#DÀTÀFÐ!KÓLÐLØ�1‰9Ø�$‘‰Aä˜t C 5Ð(IÐJÓKÐKñLr   T)Úfrozenc                   ó   — e Zd ZU eed<   eed<   ej                  j                  ed<   eed<    e	e
¬«      Ze
eef   ed<   dZedz  ed<    e	e¬«      Zee   ed	<   ej"                  Zeed
<   dZe
eef   dz  ed<   d„ Zy)Ú
ExportCaseÚexample_argsÚdescriptionÚmodelÚname)Údefault_factoryÚexample_kwargsNÚ
extra_argsÚtagsÚsupport_levelÚdynamic_shapesc                 óV  — t        | j                  | j                  «       | j                  �t        | j                  i «       | j                  D ]  }t        |«       Œ t        | j                  t        «      rt        | j                  «      dk(  rt        d| j                  › d�«      ‚y )Nr   zInvalid description: "ú")r(   r9   r>   r?   r@   r5   r   r:   r$   Úlenr!   )Úselfr)   s     r   Ú__post_init__zExportCase.__post_init__X   s‘   € Ü˜$×+Ñ+¨T×-@Ñ-@ÔAØ�?‰?Ð&Ü˜dŸo™o¨rÔ2à—9‘9ò 	ˆCÜ˜#Õð	ô ˜$×*Ñ*¬CÔ0´C¸×8HÑ8HÓ4IÈQÒ4NÜÐ5°d×6FÑ6FÐ5GÀqÐIÓJÐJð 5Or   )r   r   r   ÚArgsTypeÚ__annotations__r$   r   ÚnnÚModuler   r#   r>   r   r?   r.   r@   r   r   rA   rB   rG   r   r   r   r8   r8   K   s†   … àÓØÓØ�8‰8�?‰?ÓØ
ƒIÙ%*¸4Ô%@€N�D˜˜c˜‘NÓ@Ø"&€J�˜4‘Ó&á¨3Ô/€Dˆ#ˆc‰(Ó/Ø".×"8Ñ"8€M�<Ó8Ø,0€N�D˜˜c˜‘N TÑ)Ó0ó	Kr   r8   Ú_EXAMPLE_CASESÚ_MODULESÚ_EXAMPLE_CONFLICT_CASESÚ_EXAMPLE_REWRITE_CASESÚcaseÚreturnc                 ó  — | j                   t        v rZ| j                   t        vr%t        | j                      gt        | j                   <   t        | j                      j                  | «       y| t        | j                   <   y)zA
    Registers a user provided ExportCase into example bank.
    N)r<   rL   rN   Úappend)rP   s    r   Úregister_db_caserT   j   s`   € ð ‡y�y”NÑ"Ø�9‰9Ô3Ñ3Ü2@ÀÇÁÑ2KÐ1LÔ# D§I¡IÑ.Ü §	¡	Ñ*×1Ñ1°$Ô7Øà $„N�4—9‘9Òr   c                 óz   — t        j                  dd| «      } t        j                  dd| «      j                  «       S )Nz(.)([A-Z][a-z]+)z\1_\2z([a-z0-9])([A-Z]))ÚreÚsubÚlower)r<   s    r   Úto_snake_caserY   w   s2   € Ü�6‰6Ð$ h°Ó5€DÜ�6‰6Ð% x°Ó6×<Ñ<Ó>Ð>r   c                 óä   — t        | t        j                  j                  «      st	        d«      ‚d|vr,| j
                  €t        d| › �«      ‚i |¥d| j
                  i¥}t        di i |¥| |dœ¥¤ŽS )Nz.Export case class should be a torch.nn.Module.r:   z9Could not find description or docstring for export case: )r;   r<   r   )r   r   rJ   rK   Ú	TypeErrorr   r1   r8   )Úmr<   Úconfigss      r   Ú_make_export_caser^   |   s{   € Ü�aœŸ™Ÿ™Ô)ÜÐHÓIÐIà˜GÑ#à�9‰9ÐÜ ØKÈAÈ3ÐOóð ð 8�WÐ7˜m¨Q¯Y©YÑ7ˆäÑ>Ð=˜7Ð=¨Q¸Ò=Ñ>Ð>r   c                  ó   ‡ — ˆ fd„}|S )zK
    Decorator for registering a user provided case into example bank.
    c                 ó  •— ‰}t        j                  | «      }|t        v rt        d«      ‚|€t	        d«      ‚t        j                  |«       |j                  j                  d«      d   }t        | ||«      }t        |«       |S )Nz6export_case should only be used once per example file.zmodule must not be Noner+   éÿÿÿÿ)
ÚinspectÚ	getmodulerM   ÚRuntimeErrorr1   Úaddr   r-   r^   rT   )r\   r]   ÚmoduleÚmodule_namerP   r&   s        €r   Úwrapperzexport_case.<locals>.wrapper�   s}   ø€ ØˆÜ×"Ñ" 1Ó%ˆØ”XÑÜÐWÓXÐXàˆ>Ü Ð!:Ó;Ð;Ü�‰�VÔØ—o‘o×+Ñ+¨CÓ0°Ñ4ˆÜ   K°Ó9ˆÜ˜ÔØˆr   r   ©r&   rh   s   ` r   Úexport_caserj   ‹   s   ø€ ô
ð €Nr   c                  ó   ‡ — ˆ fd„}|S )Nc                 óD  •— ‰}|j                  d«      }t        |t        «      st        dt	        |«      › �«      ‚|j
                  }|t        vr	g t        |<   |j                  |d<   t        | t        | j                  «      |«      }t        |   j                  |«       |S )NÚparentzexpected ExportCase, got r9   )Úpopr   r8   r1   r"   r<   rO   r9   r^   rY   r   rS   )r\   r]   rm   r'   rP   r&   s        €r   rh   z$export_rewrite_case.<locals>.wrapper¢   s“   ø€ Øˆà—‘˜XÓ&ˆÜ˜&¤*Ô-Ü Ð#<¼TÀ&»\¸NÐ!KÓLÐLØ�k‰kˆØÔ,Ñ,Ø*,Ô" 3Ñ'à"(×"5Ñ"5ˆ�ÑÜ  ¤M°!·*±*Ó$=¸wÓGˆÜ˜sÑ#×*Ñ*¨4Ô0Øˆr   r   ri   s   ` r   Úexport_rewrite_casero   ¡   s   ø€ ôð €Nr   )"rb   rV   r/   Údataclassesr   r   Úenumr   Útypingr   Útypesr   r   r   r#   r$   rI   r   r    rH   r(   r5   r8   rL   r.   rM   rN   ÚlistrO   rT   rY   r^   rj   ro   r   r   r   ú<module>ru      sG  ðä Û 	Û ß (Ý Ý Ý ã ð ØØØØØØñð ØØØØØØØñ	ñ$€€tˆC��c˜3�h‘ÐÑ ó ô.�4ô ð ��c�‰?€òð	L�só 	Lñ �$Ô÷Kð Kó ðKð0 )+€��S˜*�_Ñ%Ó *Ù›E€ˆ#ˆj‰/Ó !Ø79Ð ˜˜c 4¨
Ñ#3Ð3Ñ4Ó 9Ø68Ð ˜˜S $ zÑ"2Ð2Ñ3Ó 8ð
%˜:ð 
%¨$ó 
%ò?ò
?òó,r   