
    ¯wg                     H    d Z ddlmc mZ ddlmZ  G d d      Z e       Zy)zGlobals used internally by the ONNX exporter.

Do not use this module outside of `torch.onnx` and its tests.

Be very judicious when adding any new global variables. Do not create new global
variables unless they are absolutely necessary.
    N)
_constantsc                   &   e Zd ZdZddZed        Zej                  dej                  fd       Zede
fd       Zej                  d	e
fd
       Zedefd       Zej                  d	efd       Zedefd       Zej                  d	efd       Zy)_InternalGlobalszGlobals used internally by ONNX exporter.

    NOTE: Be very judicious when adding any new variables. Do not create new
    global variables unless they are absolutely necessary.
    returnNc                     t         j                  | _        t        j                  j
                  | _        d| _        d| _        t        j                  j                  | _        d| _        d| _        y )NFT)r   ONNX_DEFAULT_OPSET_export_onnx_opset_version_C_onnxTrainingModeEVAL_training_mode_in_onnx_exportexport_trainingOperatorExportTypesONNXoperator_export_typeonnx_shape_inference_autograd_inliningselfs    X/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/torch/onnx/_globals.py__init__z_InternalGlobals.__init__   s]    *4*G*G'4;4H4H4M4M%*%*'',, 	! +/!(,    c                     | j                   S )z#The training mode for the exporter.)r   r   s    r   training_modez_InternalGlobals.training_mode$   s     """r   r   c                 \    t        |t        j                        st        d      || _        y )Nz\training_mode must be of type 'torch.onnx.TrainingMode'. This is likely a bug in torch.onnx.)
isinstancer
   r   	TypeErrorr   )r   r   s     r   r   z_InternalGlobals.training_mode)   s.    -)=)=>.  ,r   c                     | j                   S )z!Opset version used during export.)r	   r   s    r   export_onnx_opset_versionz*_InternalGlobals.export_onnx_opset_version2   s     ...r   valuec                     t        t        j                  t        j                  dz         }||vrt	        d|       || _        y )N   z Unsupported ONNX opset version: )ranger   ONNX_MIN_OPSETONNX_MAX_OPSET
ValueErrorr	   )r   r!   supported_versionss      r   r    z*_InternalGlobals.export_onnx_opset_version7   sI    "%%z'@'@1'D
 **?wGHH*/'r   c                     | j                   S )z+Whether it is in the middle of ONNX export.)r   r   s    r   in_onnx_exportz_InternalGlobals.in_onnx_export@   s     ###r   c                 J    t        |      t        urt        d      || _        y )Nz in_onnx_export must be a boolean)typeboolr   r   r   r!   s     r   r*   z_InternalGlobals.in_onnx_exportE   s"    ;d">??$r   c                     | j                   S )z!Whether Autograd must be inlined.)r   r   s    r   autograd_inliningz"_InternalGlobals.autograd_inliningK   s     &&&r   c                 J    t        |      t        urt        d      || _        y )Nz#autograd_inlining must be a boolean)r,   r-   r   r   r.   s     r   r0   z"_InternalGlobals.autograd_inliningP   s"    ;d"ABB"'r   )r   N)__name__
__module____qualname____doc__r   propertyr   setterr
   r   intr    r-   r*   r0    r   r   r   r      s    
- # # ,7+?+? , , /3 / / %%0s 0 &0 $ $ $ %D % %
 '4 ' ' (t ( (r   r   )	r5   torch._C._onnx_C_onnxr
   
torch.onnxr   r   GLOBALSr9   r   r   <module>r?      s.    !   "C( C(L 
r   