a
    d                     @  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 g d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G dd deZdS )zONNX exporter exceptions.    )annotationsN)Optional)_C)
_constants)diagnostics)OnnxExporterErrorOnnxExporterWarningCallHintViolationWarning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   Z/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/torch/onnx/errors.pyr      s   r   c                   @  s   e Zd ZdZdS )r	   zCWarning raised when a type hint is violated during a function call.Nr   r   r   r   r   r	      s   r	   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   r   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   r
   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 ur2t jj}||||}t |t jj| nn|dsP|dsP|dr|t jj}|||t	j
}t |t jj| n$t jj}||}t |t jj| t | d S )Nzaten::zprim::zquantized::)r   rulesZ)operator_supported_in_newer_opset_versionZformat_messageZdiagnose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   0   s(    
z!UnsupportedOperatorError.__init__r   r   r   r   r   __classcell__r   r   r!   r   r   -   s   r   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
y   |d7 }Y n0 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>]   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-   f   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   L   s@    

	


zSymbolicValueError.__init__r#   r   r   r!   r   r   I   s   r   )r   
__future__r   r1   typingr   Ztorchr   Z
torch.onnxr   Ztorch.onnx._internalr   __all__UserWarningr   r	   RuntimeErrorr   r
   r   r   r   r   r   r   <module>   s   
