o
    Xi                     @  sV   d Z ddlmZ dgZddlmZ ddlZddlZddl	m
Z
 G dd dejjZdS )zPasses for debugging purposes.    )annotationsCheckerPass)LiteralN)_c_api_utilsc                      sP   e Zd ZdZedddZedddZ						dd fddZdddZ  Z	S )r   zRun onnx checker on the model.returnLiteral[True]c                 C     dS )z&This pass does not create a new model.T selfr	   r	   V/home/ubuntu/.local/lib/python3.10/site-packages/onnx_ir/passes/common/onnx_checker.pyin_place      zCheckerPass.in_placeLiteral[False]c                 C  r   )z*This pass does not change the input model.Fr	   r
   r	   r	   r   changes_input   r   zCheckerPass.changes_inputF
full_checkboolskip_opset_compatibility_checkcheck_custom_domainc                   s    t    || _|| _|| _d S )N)super__init__r   r   r   )r   r   r   r   	__class__r	   r   r       s   

zCheckerPass.__init__modelir.Modelir.passes.PassResultc                   s*   d
 fdd}t j||d tj|dS )z"Run the onnx checker on the model.protoonnx.ModelProtor   Nonec                   s   t jj|  j j jd dS )z$Partial function to check the model.)r   r   r   N)onnxcheckercheck_modelr   r   r   )r   r
   r	   r   _partial_check_model.   s   
z.CheckerPass.call.<locals>._partial_check_model)funcr   FN)r   r   r   r   )r   call_onnx_apiirpasses
PassResult)r   r   r"   r	   r
   r   call+   s   	zCheckerPass.call)r   r   )r   r   )FFF)r   r   r   r   r   r   )r   r   r   r   )
__name__
__module____qualname____doc__propertyr   r   r   r(   __classcell__r	   r	   r   r   r      s    )r,   
__future__r   __all__typingr   r   onnx_irr%   onnx_ir.passes.commonr   r&   PassBaser   r	   r	   r	   r   <module>   s   