
    i                     0   d dl Z d dlZej                  j                  dd      Zej                  d       ej                  j                  edd      ej                  j                  edd      dej                  d	ed
ej                  fd              Z	d Z
y)    NexportFRAGMENTzLaccess_subclass_inner_tensor(Tensor src_subclass_tensor, str attr) -> Tensoraccess_subclass_inner_tensorAutogradPythonsrc_subclass_tensorattrreturnc                     ddl m}  ||       sJ t        | |d       }|t        |t        j
                        st        d| d|        |S )Nr   )is_traceable_wrapper_subclassz
Attribute z% is not a tensor or doesn't exist in )torch.utils._python_dispatchr   getattr
isinstancetorchTensorRuntimeError)r   r	   r   vals       Q/var/www/html/engine/venv/lib/python3.12/site-packages/torch/export/custom_ops.py_access_subclass_inner_tensorr      s_     K()<===
%tT
2C
{*S%,,7CDWCXY
 	
 J    c                     | j                  dd      \  }}t        j                  |      }t        ||      }t	        |d      sJ  |j
                  |i |S )a]  
    Import a custom autograd function by string name and call it. This is pretty bad
    because:
    1) There is no schema

    Ideally we should automatically wrap custom autograd functions with a custom op, but
    that is too much work because we need to schematize custom autograd functions. For now,
    we just hackily put it in the IR.
    .   apply)rsplit	importlibimport_moduler   hasattrr   )function_cls_nameargskwargsmodule_name
class_namemodulefunction_clss          r   ._call_custom_autograd_function_in_pre_dispatchr&       sa     066sA>K $$[1F6:.L<)))<t.v..r   )r   r   libraryLibrarylibdefineimplr   strr   r&    r   r   <module>r.      s      mmHj1 

R
 C7D C7B-0
\\ C E/r   