U
    9%e                     @  s   d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	 ddl
mZ dd	d
ddgZG dd	 d	eZG dd deZG dd
 d
eZG dd deZG dd deZdS )zONNX exporter exceptions.    )annotationsN)Optional)_C)
_constants)diagnosticsOnnxExporterErrorOnnxExporterWarningCheckerErrorUnsupportedOperatorErrorSymbolicValueErrorc                   @  s   e Zd ZdZdS )r   z1Base class for all warnings in the ONNX exporter.N__name__
__module____qualname____doc__ r   r   P/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/torch/onnx/errors.pyr      s   c                   @  s   e Zd ZdZdS )r   z#Errors raised by the ONNX exporter.Nr   r   r   r   r   r      s   c                   @  s   e Zd ZdZdS )r	   z2Raised when ONNX checker detects an invalid model.Nr   r   r   r   r   r	       s   c                      s*   e Zd ZdZdddd fddZ  ZS )r
   z7Raised when an operator is unsupported by the exporter.strintzOptional[int])nameversionsupported_versionc                   s   |d k	r2t jj}||||}t |t jj| nZ|drht jj}|||t	j
}t |t jj| n$t jj}||}t |t jj| t | d S )N)zaten::zprim::zquantized::)r   rulesZ)operator_supported_in_newer_opset_versionZformat_messageZdiagnoseZlevelsERROR
startswithZ"missing_standard_symbolic_functionr   ZPYTORCH_GITHUB_ISSUES_URLZ missing_custom_symbolic_functionsuper__init__)selfr   r   r   Zdiagnostic_rulemsg	__class__r   r   r   )   s"    
  
z!UnsupportedOperatorError.__init__r   r   r   r   r   __classcell__r   r   r   r   r
   &   s   c                      s(   e Zd ZdZddd fddZ  ZS )r   z+Errors around TorchScript values and nodes.r   z_C.Value)r   valuec              
     s   | d| d|   d|   d}|  }|rH|d| d7 }zl|d7 }|tdd	d
d t|  D p|d d	 d d	dd t| 	 D pd d7 }W n t
k
r   |d7 }Y nX t | d S )Nz  [Caused by the value 'z	' (type 'z;') in the TorchScript graph. The containing node has kind 'z'.] z
    (node defined in )z

zInputs:

c                 s  s.   | ]&\}}d | d| d|   dV  qdS z    #z: z	  (type 'z')Ntype).0iZinput_r   r   r   	<genexpr>R   s   z.SymbolicValueError.__init__.<locals>.<genexpr>z	    Emptyz	Outputs:
c                 s  s.   | ]&\}}d | d| d|   dV  qdS r&   r'   )r)   r*   outputr   r   r   r+   [   s   z    zv Failed to obtain its input and output for debugging. Please refer to the TorchScript graph for debugging information.)r(   nodekindZsourceRangetextwrapindentjoin	enumerateinputsoutputsAttributeErrorr   r   )r   r   r#   messageZcode_locationr   r   r   r   A   s<    &
	


zSymbolicValueError.__init__r!   r   r   r   r   r   >   s   )r   
__future__r   r/   typingr   Ztorchr   Z
torch.onnxr   Ztorch.onnx._internalr   __all__UserWarningr   RuntimeErrorr   r	   r
   r   r   r   r   r   <module>   s"   	