o
    h                     @  s   d Z ddlmZ g dZddlZddlmZ erddlm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.    )annotations)OnnxExporterWarningSymbolicValueErrorUnsupportedOperatorErrorN)TYPE_CHECKING)_Cc                   @     e Zd ZdZdS )r   zWarnings in the ONNX exporter.N__name__
__module____qualname____doc__ r   r   e/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/torch/onnx/errors.pyr          r   c                   @  r   )OnnxExporterErrorzSErrors raised by the ONNX exporter. This is the base class for all exporter errors.Nr	   r   r   r   r   r      r   r   c                      s"   e Zd ZdZd
 fdd	Z  ZS )r   z7Raised when an operator is unsupported by the exporter.namestrversionintsupported_version
int | Nonec                   s   ddl m} ddlm} |d ur%|jj}||||}|||jj	| n-|
dr@|jj}||||j}|||jj	| n|jj}||}|||jj	| t | d S )Nr   )
_constants)diagnostics)zaten::zprim::zquantized::)
torch.onnxr   torch.onnx._internalr   rules)operator_supported_in_newer_opset_versionformat_messagediagnoselevelsERROR
startswith"missing_standard_symbolic_functionPYTORCH_GITHUB_ISSUES_URL missing_custom_symbolic_functionsuper__init__)selfr   r   r   r   r   diagnostic_rulemsg	__class__r   r   r'   !   s"   

z!UnsupportedOperatorError.__init__)r   r   r   r   r   r   r
   r   r   r   r'   __classcell__r   r   r+   r   r          r   c                      s"   e Zd ZdZd fddZ  ZS )	r   z+Errors around TorchScript values and nodes.r*   r   value_C.Valuec              
     s   | d| d|   d|   d}|  }|r$|d| d7 }z6|d7 }|tdd	d
d t|  D p>d d	 d d	dd t| 	 D pTd d7 }W n t
yg   |d7 }Y nw 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  0    | ]\}}d | d| d|   dV  qdS z    #z: z	  (type 'z')Ntype).0iinput_r   r   r   	<genexpr>O   
    
z.SymbolicValueError.__init__.<locals>.<genexpr>z	    Emptyz	Outputs:
c                 s  r4   r5   r6   )r8   r9   outputr   r   r   r;   X   r<   z    zv Failed to obtain its input and output for debugging. Please refer to the TorchScript graph for debugging information.)r7   nodekindsourceRangetextwrapindentjoin	enumerateinputsoutputsAttributeErrorr&   r'   )r(   r*   r0   messagecode_locationr+   r   r   r'   >   sB   

	

zSymbolicValueError.__init__)r*   r   r0   r1   r-   r   r   r+   r   r   9   r/   r   )r   
__future__r   __all__rA   typingr   torchr   UserWarningr   RuntimeErrorr   r   r   r   r   r   r   <module>   s    