Ë
    ÄÓ^j6  ã                   óŽ   — d dl Zd dlZd dlZd dlZd dlmZ dZd„ Z G d„ dej                  j                  «      Zd„ Z	 d
d„Zd	„ Zy)é    N)Úget_remote_module_templateÚ_remote_module_c                 óN  — t        | dd«      st        d«      ‚t        j                  j	                  | «      }t        j
                  j                  j                  }|j                  |«      }d|j                  «       vrt        d|j                  «       › �«      ‚|j                  d«      }g }g }|€t        ‚|j                  D ]m  }|j                  |j                  «       |j                  «       rd|j                  › �}nd}|j                  › d|j                   › |› �}	|j                  |	«       Œo |d	d  }d
j#                  |«      }
|d	d  }d
j#                  |«      }t%        |j&                  «      d	k7  rt        ‚|j&                  d   }t)        |j                   «      }|
||fS )NÚ__torch_script_interface__FzGExpect a TorchScript class interface decorated by @torch.jit.interface.Úforwardz2Expect forward in interface methods, while it has z = Ú z: é   z, r   )ÚgetattrÚAssertionErrorÚtorchÚ_jit_internalÚ_qualified_nameÚjitÚ_stateÚ
_python_cuÚget_interfaceÚgetMethodNamesÚ	getMethodÚ	argumentsÚappendÚnameÚhas_default_valueÚdefault_valueÚtypeÚjoinÚlenÚreturnsÚstr)Úmodule_interfaceÚqualified_nameÚcuÚmodule_interface_cÚmethod_schemaÚarg_str_listÚarg_type_str_listÚargumentÚdefault_value_strÚarg_type_strÚargs_strÚarg_types_strÚreturn_type_strs                úp/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/distributed/nn/jit/instantiator.pyÚ#get_arg_return_types_from_interfacer-      s±  € ÜÐ#Ð%AÀ5ÔIÜØUó
ð 	
ô ×(Ñ(×8Ñ8Ð9IÓJ€NÜ	�‰×	Ñ	×	$Ñ	$€BØ×)Ñ)¨.Ó9ÐØÐ*×9Ñ9Ó;Ñ;ÜØ@ÐAS×AbÑAbÓAdÐ@eÐfó
ð 	
ð '×0Ñ0°Ó;€Mà€LØÐØÐÜÐØ!×+Ñ+ò /ˆØ×Ñ˜HŸM™MÔ*à×%Ñ%Ô'Ø"% h×&<Ñ&<Ð%=Ð >Ñà "ÐØ"Ÿ-™-˜¨¨8¯=©=¨/Ð:KÐ9LÐMˆØ× Ñ  Õ.ð/ð    Ð#€LØ�y‰y˜Ó&€Hà)¨!¨"Ð-ÐØ—I‘IÐ/Ó0€Mä
ˆ=× Ñ Ó! QÒ&ÜÐØ×$Ñ$ QÑ'€HÜ˜(Ÿ-™-Ó(€Oà�] OÐ3Ð3ó    c                   óh   — e Zd ZdZdeddfd„Zdedefd„Zdedefd	„Zdedefd
„Z	dede
fd„Zdd„Zy)Ú_StringLoaderay  
    A custom loader for dynamically generated Python source code.

    Inherits from SourceLoader for API compatibility but overrides exec_module()
    to avoid bytecode caching issues. The default SourceLoader.exec_module() calls
    cache_from_source() which fails with IndexError when the filename doesn't
    correspond to a real filesystem path with a .py extension.
    ÚdataÚreturnNc                 ó   — || _         y ©N©r1   )Úselfr1   s     r,   Ú__init__z_StringLoader.__init__D   s	   € Øˆ�	r.   Úfullnamec                 ó   — | j                   S r4   r5   ©r6   r8   s     r,   Ú
get_sourcez_StringLoader.get_sourceG   s   € Ø�y‰yÐr.   Úpathc                 ó8   — | j                   j                  d«      S )Nzutf-8)r1   Úencode©r6   r<   s     r,   Úget_dataz_StringLoader.get_dataJ   s   € Ø�y‰y×Ñ Ó(Ð(r.   c                 ó   — d|› d�S )Nú<z>.py© r:   s     r,   Úget_filenamez_StringLoader.get_filenameM   s   € Ø�8�*˜DÐ!Ð!r.   c                 ó   — t        d«      ‚)Nz4dynamically generated module has no filesystem stats)ÚOSErrorr?   s     r,   Ú
path_statsz_StringLoader.path_statsP   s   € äÐLÓMÐMr.   c                 óº   — | j                  |j                  «      }| j                  |j                  «      }t        ||dd¬«      }t	        ||j
                  «       y)zò
        Execute the module by compiling and running the source directly.

        This overrides SourceLoader.exec_module() to bypass the problematic
        get_code() -> cache_from_source() code path that fails on dynamic modules.
        ÚexecT)Údont_inheritN)r;   Ú__name__rD   ÚcompilerI   Ú__dict__)r6   ÚmoduleÚsourceÚfilenameÚcodes        r,   Úexec_modulez_StringLoader.exec_moduleT   sH   € ð —‘ §¡Ó1ˆØ×$Ñ$ V§_¡_Ó5ˆÜ�v˜x¨¸dÔCˆÜˆT�6—?‘?Õ#r.   )r2   N)rK   Ú
__module__Ú__qualname__Ú__doc__r   r7   r;   Úbytesr@   rD   ÚdictrG   rR   rC   r.   r,   r0   r0   :   sn   „ ñð˜Sð  Tó ð 3ð ¨3ó ð)˜Sð ) Uó )ð" Sð "¨Só "ðN˜sð N tó Nô
$r.   r0   c                 ór  — | t         j                  v rt         j                  |    S t         t        |«      j                  di |¤Ž«      }t
        j                  j                  | |d¬«      }|€t        ‚t
        j                  j                  |«      }|t         j                  | <   |j                  |«       |S )Nz	torch-git)ÚoriginrC   )ÚsysÚmodulesr0   r   ÚformatÚ	importlibÚutilÚspec_from_loaderr   Úmodule_from_specrR   )Úgenerated_module_nameÚstr_dictÚ!enable_moving_cpu_tensors_to_cudaÚloaderÚspecrN   s         r,   Ú&_do_instantiate_remote_module_templaterf   a   s©   € ð ¤§¡Ñ+Ü�{‰{Ð0Ñ1Ð1äØLÔ"Ð#DÓE×LÑLÑXÈxÑXó€Fô �>‰>×*Ñ*Ø˜v¨kð +ó €Dð €|ÜÐÜ�^‰^×,Ñ,¨TÓ2€FØ)/„C‡K�KÐ%Ñ&Ø
×Ñ�vÔØ€Mr.   c           	      ó\  — t        | dd«      st        d| › d�«      ‚t        j                  j	                  | «      j                  dd«      }t        › |› �}d| j                  › d| j                  › d	�}t        | «      \  }}}d
}d|› �}	d|› d�}
t        |||	|
||d¬«      }t        |||«      S )Nr   Fzmodule_interface_cls z8 must be a type object decorated by @torch.jit.interfaceú.Ú_zfrom z import z as module_interface_clsr   z -> z -> Future[ú]z@torch.jit.script)Úassign_module_interface_clsÚ	arg_typesÚarrow_and_return_typeÚarrow_and_future_return_typeÚargsÚkwargsÚjit_script_decorator)r
   Ú
ValueErrorr   r   r   ÚreplaceÚ_FILE_PREFIXrS   rK   r-   rW   rf   )Úmodule_interface_clsrc   Úmodule_interface_cls_namera   Úassign_module_interface_cls_strr)   r*   r+   Ú
kwargs_strÚarrow_and_return_type_strÚ arrow_and_future_return_type_strrb   s               r,   Ú-instantiate_scriptable_remote_module_templater{   u   s  € ô Ð'Ð)EÀuÔMÜØ#Ð$8Ð#9ð :#ð #ó
ð 	
ô !&× 3Ñ 3× CÑ CØó!ç�gˆc�3Óð ô  ,˜nÐ-FÐ,GÐHÐð Ð$×/Ñ/Ð0°Ø×(Ñ(Ð
)Ð)Að	Cð $ô 0SØó0Ñ,€Hˆm˜_ð €JØ"& Ð&7Ð 8ÐØ)4°_Ð4EÀQÐ'GÐ$äØ$CØØ7Ø%EØØØ0ô€Hô 2Ø˜xÐ)Jóð r.   c            	      óR   — t         › d�} t        ddddddd¬«      }t        | |d«      S )	NÚnon_scriptablezmodule_interface_cls = Nonez*argsz**kwargsz*args, **kwargsr   )rk   ro   rp   rl   rm   rn   rq   T)rt   rW   rf   )ra   rb   s     r,   Ú1instantiate_non_scriptable_remote_module_templater~   ž   sA   € Ü+˜n¨NÐ;ÐÜØ$AØØØ#Ø Ø%'Øô€Hô 2Ð2GÈÐSWÓXÐXr.   )T)Úimportlib.abcr]   Úimportlib.utilrZ   r   Ú9torch.distributed.nn.jit.templates.remote_module_templater   rt   r-   ÚabcÚSourceLoaderr0   rf   r{   r~   rC   r.   r,   ú<module>r„      sS   ðó Û Û 
ã õð
 !€ò'4ôT$$�I—M‘M×.Ñ.ô $$òNð* =Aó&óRYr.   