Ë
    [^(h¨  ã                  óÈ   — d Z ddlmZ ddlZddlmZ erddlZddlZddlZ	 ej                  dd¬«       G d„ d«      «       Z ej                  dd¬«       G d	„ d
«      «       Zy)z8Module for handling ATen to ONNX functions registration.é    )ÚannotationsN)ÚTYPE_CHECKINGT)ÚfrozenÚeqc                  óB   — e Zd ZU dZded<   ded<   dZded<   dZded	<   y
)ÚONNXFunctiona_  A wrapper of onnx-script function.

    op_full_name: The qualified name of the function. In the form of '<namespace>::<op_name>.<overload>'.
    onnx_function: The onnx-script function from torchlib.
    is_custom: Whether the function is a custom function.
    is_complex: Whether the function is a function that handles complex valued inputs.

    z7onnxscript.OnnxFunction | onnxscript.TracedOnnxFunctionÚonnx_functionÚstrÚop_full_nameFÚboolÚ	is_customÚ
is_complexN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r   r   © ó    úb/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/onnx/_internal/fx/registration.pyr   r      s*   … ñð KÓJØÓØ€IˆtÓØ€J�Ôr   r   c                  óš   — e Zd ZU dZded<   ded<   ded<   e	 d	 	 	 	 	 	 	 dd„«       Zedd„«       Zedd	„«       Ze	 	 	 	 dd
„«       Z	dd„Z
y)ÚOpNamezAA class representing an operator name in internal ONNX converter.r
   Ú	namespaceÚop_nameÚoverloadNc                ó(   — |�|dk(  rd} | |||«      S )NÚ Údefaultr   )Úclsr   r   r   s       r   Úfrom_name_partszOpName.from_name_parts-   s$   € ð Ð˜x¨2š~Ø ˆHÙ�9˜g xÓ0Ð0r   c                óx   — |j                  d«      \  }}|j                  dd«      ^}}|r|d   nd} | |||«      S )z4When the name is <namespace>::<op_name>[.<overload>]ú::ú.é   r   r   )Úsplit)r   Úqualified_namer   Úopname_overloadr   r   s         r   Úfrom_qualified_namezOpName.from_qualified_name7   sL   € ð &4×%9Ñ%9¸$Ó%?Ñ"ˆ	�?Ø,×2Ñ2°3¸Ó:Ðˆ�(Ù"*�8˜A’;°	ˆÙ�9˜g xÓ0Ð0r   c                ó@   — | j                  |j                  «       «      S ©N)r(   Úname)r   Úop_overloads     r   Úfrom_op_overloadzOpName.from_op_overload?   s   € à×&Ñ& {×'7Ñ'7Ó'9Ó:Ð:r   c                ó`   — |j                   }|j                  }| j                  |dz   |z   «      S )a€  From a builtin function, e.g. operator.add, math.ceil, etc, get the OpName.

        FX graph uses built-in functions to caculate sympy expression. This function
        is used to get the OpName from a builtin function.

        Args:
            builtin_function (types.BuiltinFunctionType): operator.add, math.ceil, etc.

        Returns:
            OpName: _description_
        r"   )r   r   r(   )r   Úbuiltin_functionÚopÚmodules       r   Úfrom_builtin_functionzOpName.from_builtin_functionC   s4   € ð ×&Ñ&ˆØ!×,Ñ,ˆØ×&Ñ& v°¡}°rÑ'9Ó:Ð:r   c                óR   — | j                   › d| j                  › d| j                  › �S )Nr"   r#   )r   r   r   )Úselfs    r   r&   zOpName.qualified_nameV   s&   € Ø—.‘.Ð!  D§L¡L >°°4·=±=°/ÐBÐBr   r*   )r   r
   r   r
   r   z
str | NoneÚreturnr   )r&   r
   r5   r   )r,   ztorch._ops.OpOverloadr5   r   )r/   ztypes.BuiltinFunctionTyper5   r   )r5   r
   )r   r   r   r   r   Úclassmethodr    r(   r-   r2   r&   r   r   r   r   r   %   s›   … áKàƒNØƒLØƒMààBFð1Øð1Ø&)ð1Ø5?ð1à	ò1ó ð1ð ò1ó ð1ð ò;ó ð;ð ð;Ø8ð;à	ò;ó ð;ô$Cr   r   )r   Ú
__future__r   ÚdataclassesÚtypingr   ÚtypesÚ
onnxscriptÚ
torch._opsÚtorchÚ	dataclassr   r   r   r   r   ú<module>r?      sr   ðÙ >å "ã Ý  ñ Ûããð €×Ñ˜d tÔ,÷ð ó -ðð  €×Ñ˜d tÔ,÷1Cð 1Có -ñ1Cr   