
    =pjK                         S r SSKJr  SSKJrJrJrJrJr  SSK	J
r
  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJrJr   " S S\5      rg)zONNX Runtime engine.    )Path)AnyDictOptionalTupleType   )MODEL_FILE_PREFIX)is_dep_available   )ONNXRuntimeRunner)InferenceRunnerONNXRuntimeRunnerConfig)LocalModelFormat   )RunnerBuilderRunnerEnginec                       \ rS rSrSrSr\S\4S j5       r\S\	\
   4S j5       rS\\\S4      4S jrS	S	S
.S\\\4   S\\   S\\   S\\\4   4S jjrSS jrS\\\4   SS	4S jrS\4S jrS\SS	4S jrSrg	)ONNXRuntimeEngine   z"Engine for ONNX Runtime inference.onnxruntimereturnc                     g)Nr    selfs    h/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/paddlex/inference/models/engines/onnxruntime.pynameONNXRuntimeEngine.name#   s        c                     [         $ Nr   r   s    r   engine_config_model%ONNXRuntimeEngine.engine_config_model'   s    &&r!   .c                     g)N)onnxr   r   s    r   get_supported_model_formats-ONNXRuntimeEngine.get_supported_model_formats+   s     r!   N)
model_namedevicerawr*   r+   c                *    AU R                  X5        U$ r#   )_apply_device)r   r,   r*   r+   s       r   prepare_config_dict%ONNXRuntimeEngine.prepare_config_dict0   s     3'
r!   c                 :    [        S5      (       d  [        S5      eg )Nr   zVEngine 'onnxruntime' is unavailable because dependency 'onnxruntime' is not installed.)r   RuntimeErrorr   s    r   ensure_environment$ONNXRuntimeEngine.ensure_environment;   s$    ..2  /r!   engine_configc                     UR                  S5      nUb  US:X  a  g US:w  a  [        S5      eSS Kn[        UR	                  5       5      nSU;  a  [        S[        U5      < S35      eg )	Ndevice_typecpugpuz?`engine='onnxruntime'` currently only supports `cpu` and `gpu`.r   CUDAExecutionProviderzqONNX Runtime GPU inference is unavailable because `CUDAExecutionProvider` is not available. Available providers: .)get
ValueErrorr   setget_available_providersr2   sorted)r   r5   r7   ortavailable_providerss        r   _check_device_support'ONNXRuntimeEngine._check_device_supportB   s    #''6+"6%Q  	"!#"="="?@"*==((./B(C'FaI  >r!   c                    ^  S S.S[         S[        [           S[        [        [         [        4      S[        [         [        4   S[        [
           S[        4U 4S jjjnU$ )	N)default_builderr*   	model_dirmodel_configr5   rF   r   c                 f   > A AAUc  [        S5      eTR                  U5        [        U[        US9$ )Nz1`model_dir` is required for engine='onnxruntime'.)rG   model_file_prefixconfig)r=   rC   r   r
   )r*   rG   rH   r5   rF   r   s        r   runner_builderDONNXRuntimeEngine.get_default_runner_builder.<locals>.runner_builderU   sB     L/  !TUU&&}5$#"3$ r!   )strr   r   r   r   r   r   )r   rL   s   ` r   get_default_runner_builder,ONNXRuntimeEngine.get_default_runner_builderT   sr     8<		  ~	 #4S>2		
  S>	 &m4	 	 	$ r!   runnerc                 r    [        U[        5      (       d"  [        S[        U5      R                   S35      eg )Nz>Engine 'onnxruntime' must build an ONNXRuntimeRunner, but got r;   )
isinstancer   	TypeErrortype__name__)r   rQ   s     r   validate_runner!ONNXRuntimeEngine.validate_runneri   s>    &"344<0014  5r!   r   )r   N)rV   
__module____qualname____firstlineno____doc__entitiespropertyrN   r   r   r   r$   r   r   r   r(   r   r   r/   r3   rC   r   rO   r   rW   __static_attributes__r   r!   r   r   r      s    ,Hc   'T*A%B ' '	%(#-.	/ %) $	#s(^	 SM		
 	 
c3h	4S> d $M *o $ r!   r   N)r\   pathlibr   typingr   r   r   r   r   	constantsr
   
utils.depsr   runnersr   runners.inference_runnerr   runners.onnxruntime_runnerr   utils.model_pathsr   _baser   r   r   r   r!   r   <module>ri      s6       3 3 + + ' 6 @ 0 .P Pr!   