
    [Th                        S SK Jr  S SKrS SKrS SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJrJr  S S	KJr   " S
 S\5      r\" 5       r\R-                  \5      S 5       r\R-                  \5      S 5       r\R2                  S 5       r\R-                  \R6                  5      " \	" \SS95        \R-                  \R8                  5      S 5       rS r\S 5       rS r g)    )contextmanagerN)DispatchKeystrict_mode)autograd_not_implemented)HigherOrderOperator)FakeTensorMode)ProxyTorchDispatchModetrack_tensor_tree)_pytreec                   4   ^  \ rS rSrU 4S jrU 4S jrSrU =r$ )ExportTracepoint   c                 $   > [         TU ]  S5        g )N_export_tracepoint)super__init__)self	__class__s    N/var/www/auris/envauris/lib/python3.13/site-packages/torch/_export/wrappers.pyr   ExportTracepoint.__init__   s    -.    c                 $   > [         TU ]  " U0 UD6$ N)r   __call__)r   argskwargsr   s      r   r   ExportTracepoint.__call__   s    w000r    )__name__
__module____qualname____firstlineno__r   r   __static_attributes____classcell__)r   s   @r   r   r      s    /1 1r   r   c                     [         R                  " U R                  R                  X45      u  p4U R                  R	                  S[
        X45      n[        XS U R                  S9$ )Ncall_function)constanttracer)pytreetree_mapr)   unwrap_proxycreate_proxyr   r   )moder   r   p_argsp_kwargsproxys         r   export_tracepoint_dispatch_moder2      sR    t{{'?'?$PFKK$$+VE T4LLr   c                 @    U    UsS S S 5        $ ! , (       d  f       g = fr   r   )r.   r   r   s      r   "export_tracepoint_fake_tensor_moder4   #   s    	 
s   
c                     U R                  U5      nU R                  U5      nU R                  5          [        U0 UD6  UsS S S 5        $ ! , (       d  f       g = fr   )unwrap_tensorsredispatch_to_nextr   )ctxr   r   unwrapped_argsunwrapped_kwargss        r   export_tracepoint_functionalr;   )   sL    ''-N))&1				!N?.>? 
"	!	!s   A


AT)deferred_errorc                      U $ r   r   )r   r   s     r   export_tracepoint_cpur>   8   s    Kr   c                 :  ^^^^	 [        U [        R                  R                  5      (       d   eTS:w  d   e[        R                  R
                  R                  U T5      nU4S jm	S mUU4S jnUUU	4S jnUR                  USS9nUR                  USS9nXg4$ )N c                 X   > U T;   a  TU    S   U:X  d   eTU    S   U:X  d   eXS.TU '   g )Nin_specout_spec)rB   rC   r   )pathrB   rC   module_call_specss      r   update_module_call_signatures6_wrap_submodule.<locals>.update_module_call_signaturesB   sJ    $$$T*95@@@$T*:6(BBB.5"L$r   c           	          U  HJ  n[        U[        R                  [        [        [
        [        45      (       a  M9  Uc  M>  [        SU 35      e   g )NzGOnly Tensors or scalars are supported as pytree flattened inputs, got: )
isinstancetorchTensorstrintfloatboolAssertionError)	flat_argsas     r   check_flattened(_wrap_submodule.<locals>.check_flattenedH   sE    Aq5<<c5$"GHHAI$]^_]`a  r   c                    > [         R                  " X45      u  p4T" U5        [        USTS.6n[         R                  " X45      u  pX4$ )Nmodule_call_inputskindrD   r*   tree_flattenr   tree_unflatten)moduler   r   rQ   rB   rS   rD   s        r   pre_hook!_wrap_submodule.<locals>.pre_hookO   sJ    #00$@		"&	8LSWX	,,Y@|r   c                    > [         R                  " X45      u  pE[         R                  " U5      u  pgT" U5        [        UST	S.6nT
" T	XW5        [         R                  " Xg5      $ )Nmodule_call_outputsrW   rY   )r\   r   r   res_rB   flat_resrC   rS   rD   rF   s           r   	post_hook"_wrap_submodule.<locals>.post_hookV   s]    (($8
#005!%x6KRVW%dG>$$X88r   T)with_kwargs)	rI   rJ   nnModulefxgraph_module	_get_attrregister_forward_pre_hookregister_forward_hook)
modrD   rE   	submoduler]   rd   
pre_handlepost_handlerS   rF   s
    ``     @@r   _wrap_submodulerr   =   s    c588??++++2::%%//T:IM9 44X44PJ11)1NK""r   c              #      #    / n U H  nUR                  [        XU5      5        M      S v   U H  nUR                  5         M     g ! U H  nUR                  5         M     f = f7fr   )extendrr   remove)fpreserve_signaturemodule_call_signatureshandlesrD   handles         r   _wrap_submodulesr{   c   sV     G&DNN?14JKL 'FMMO gFMMO s   A&(A A&A##A&c                     S nXl         U $ )Nc                     [        X5      $ r   r   )r   r   s     r   call'_mark_strict_experimental.<locals>.callq   s    4&&r   )r   )clsr~   s     r   _mark_strict_experimentalr   p   s    ' LJr   )!
contextlibr   rJ   torch._custom_opstorch._Cr   #torch._higher_order_ops.strict_moder   torch._higher_order_ops.utilsr   
torch._opsr   torch._subclasses.fake_tensorr	   "torch.fx.experimental.proxy_tensorr
   r   torch.utilsr   r*   r   r   py_implr2   r4   py_functionalize_implr;   AutogradCPUr>   rr   r{   r   r   r   r   <module>r      s    %     ; B * 8 X )1* 1 &'  23M 4M N+ ,
 )) *   ;// 0/E
 KOO, -##L 	 	r   