
    g                     F    d Z ddlmZmZ ddlmZ ddlmZ  G d de      Zy)z 
Implements ONNX's backend API.
    )AnyTuple)
BackendRep)
RunOptionsc                       e Zd ZdZd Zd Zy)OnnxRuntimeBackendRepzr
    Computes the prediction for a pipeline converted into
    an :class:`onnxruntime.InferenceSession` node.
    c                     || _         y)zG
        :param session: :class:`onnxruntime.InferenceSession`
        N)_session)selfsessions     T/var/www/openai/venv/lib/python3.12/site-packages/onnxruntime/backend/backend_rep.py__init__zOnnxRuntimeBackendRep.__init__   s          c                    t               }|j                         D ]  \  }}t        ||      st        |||       ! t	        |t
              ri }t        | j                  j                               D ]  \  }}||   ||j                  <    | j                  j                  d||      }	t	        |	t
              r|	S | j                  j                         D 
cg c]  }
|
j                   }}
|D cg c]  }|	|   	 c}S | j                  j                         }t        |      dk7  rt        dt        |       d      |d   j                  |i}| j                  j                  d||      S c c}
w c c}w )z`
        Computes the prediction.
        See :meth:`onnxruntime.InferenceSession.run`.
        N   zModel expect z inputsr   )r   itemshasattrsetattr
isinstancelist	enumerater
   
get_inputsnamerunget_outputslenRuntimeError)r   inputskwargsoptionskvinpsiinpoutsooutput_namesr   s                r   r   zOnnxRuntimeBackendRep.run   sH    ,LLNDAqw"A& # fd#D#DMM$<$<$>?3!'SXX @==$$T49D$%040I0I0KL0K10KL/;<|tT
|<<--**,C3x1}"]3s8*G#DEEFKK(D==$$T499  M<s   E-0E2N)__name__
__module____qualname____doc__r   r    r   r   r   r      s    
 :r   r   N)	r,   typingr   r   onnx.backend.baser   onnxruntimer   r   r-   r   r   <module>r1      s!   
  ( "&:J &:r   