U
    ‰dF  ã                   @   s$   d dl mZmZ G dd„ deƒZdS )é    )Ú
BackendRepÚnamedtupledictc                       sD   e Zd Z‡ fdd„Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Z‡  Z	S )ÚCaffe2CppRepc                    s6   t t| ƒ ¡  || _| ¡ | _| ¡ | _| ¡ | _	d S ©N)
Úsuperr   Ú__init__Ú_Caffe2CppRep__coreÚexternal_outputsÚ_Caffe2CppRep__external_outputsÚexternal_inputsZ_Caffe2CppRep__external_inputsZuninitialized_inputsÚ#_Caffe2CppRep__uninitialized_inputs)ÚselfZcpp_rep©Ú	__class__© úF/tmp/pip-unpacked-wheel-ua33x9lu/caffe2/python/onnx/backend_cpp_rep.pyr      s
    

zCaffe2CppRep.__init__c                 C   s
   | j  ¡ S r   )r   Úinit_net©r   r   r   r   r      s    zCaffe2CppRep.init_netc                 C   s
   | j  ¡ S r   )r   Úpred_netr   r   r   r   r      s    zCaffe2CppRep.pred_netc                 C   s
   | j  ¡ S r   )r   r	   r   r   r   r   r	      s    zCaffe2CppRep.external_outputsc                 C   s
   | j  ¡ S r   )r   r   r   r   r   r   r      s    zCaffe2CppRep.external_inputsc                 C   s´   d }t |tƒr| j |¡}nˆt |tƒs0t |tƒr–t|ƒt| jƒkrftd 	t| jƒd 
| j¡t|ƒ¡ƒ‚i }t| j|ƒD ]\}}|||< qv| j |¡}n| j |g¡}td| jƒ|Ž S )NzCExpected {} values for uninitialized graph inputs ({}), but got {}.z, ZOutputs)Ú
isinstanceÚdictr   ÚrunÚlistÚtupleÚlenr   ÚRuntimeErrorÚformatÚjoinÚzipr   r
   )r   ÚinputsZoutput_valuesZ	input_mapÚkÚvr   r   r   r   !   s     

ü
zCaffe2CppRep.run)
Ú__name__Ú
__module__Ú__qualname__r   r   r   r	   r   r   Ú__classcell__r   r   r   r   r      s   r   N)Zonnx.backend.baser   r   r   r   r   r   r   Ú<module>	   s   