
    =pj[!                     0   S r SSKrSSKrSSKrSSKrSSKrSSKJ	r	  SSK
Jr  SSKJrJrJrJr  SSKJr  SSKJrJr  SS	KJr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5      S 5       r"\" S5      S\ S\S\\\!\\#\4   4   \S\#4   4   4S j5       r$g)z9HPI backend selection and config for ultra_infer Runtime.    N)defaultdict)	lru_cache)AnyDictTupleUnion   )logging)function_requires_depsis_paddle2onnx_plugin_available)get_paddle_cuda_versionget_paddle_version)USE_PIR_TRT   )is_mkldnn_available   )
ModelPaths   )	HPIConfigInferenceBackendc                      [         R                  R                  [        SSS9 n [        R
                  " U 5      sS S S 5        $ ! , (       d  f       g = f)Nzhpi_model_info_collection.jsonzutf-8)encoding)	importlib	resources	open_text__package__jsonload)fs    h/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/paddlex/inference/models/runners/hpi/backend.py_get_hpi_model_info_collectionr!   #   sA    				&	&5 
' 
	
yy|
 
 
s   A
Azultra-infer
hpi_configmodel_pathsreturnc                 P   SSK JnJnJnJn  SU;   nU R
                  (       a  [        5       (       a  U=(       d    SU;   n/ nSU;   a  UR                  S5        U" 5       (       a(  U(       a!  U R                  S:X  a  UR                  S5        U" 5       (       a(  U(       a!  U R                  S;   a  UR                  S5        U" 5       (       a(  U(       a!  U R                  S	:X  a  UR                  S
5        U" 5       (       a'  SU;   a!  U R                  S:X  a  UR                  S5        U(       d  gU R                  b+  U R                  U;  a  S S[        U R                  5       S34$ [        5       nUS S S:  a  [        R                  " SU5        SnSUS S s=::  a  S::  a3  O  O0US   c*  US   S:X  a  SUS    US    3nOSUS    US    US    3nOS U S34$ U R                  S:X  aH  [        R                  " 5       n	U	R                   R#                  5       n
U
S:X  a  SnOWS [        U
5       S34$ U R                  S	:X  a  [%        5       nU(       d  gUS   nSU 3nOS [        U R                  5       S34$ ['        5       nX;  a  gX   U   nU R(                  U;  a  S [        U R(                  5       S 34$ UU R(                     R+                  5       n[-        5       (       a  U R                  S:X  d5  US S   H,  nUR/                  S!5      (       d  M  UR1                  U5        M.     [2        (       aX  [4        R6                  R9                  S
5      (       a4  [:        R6                  R=                  S"5      (       a  U R                  S	:X  d5  US S   H,  nUR/                  S#5      (       d  M  UR1                  U5        M.     / n[?        [@        5      nU Hg  nUR/                  S5      (       a  SnOUR/                  S
5      (       a  S
nOUnUb  UU;  a  MB  UR                  U5        UU   R                  U5        Mi     U(       d  g$U R                  b7  U R                  U;  a  S [        U R                  5       S%34$ U R                  nOUS   nUU   nU RB                  b  S nUS:X  a[  S&U RB                  ;   aK  U RB                  S&   R/                  S'5      (       a  S!nO%U RB                  S&   R/                  S(5      (       a  S#nU(       a"  U H  nUR/                  U5      (       d  M    O   g)US   n0 nUS:X  a  US*;   d   U5       eUS:X  a  URE                  S&S05        OUS+:X  a  URE                  S&S+05        OzUS!:X  a  URE                  S&S'05        O`US#:X  a  URE                  S&S,05        OFUS-:X  a  URE                  S&S.05        O,US
:X  a&  US/;   d   U5       eUS0:X  a  URE                  S1S205        U RB                  b  URE                  U RB                  5        UU4$ )3Nr   )is_built_with_omis_built_with_openvinois_built_with_ortis_built_with_trtonnxpaddlecpuopenvino)r,   gpuonnxruntimer.   tensorrtomnpu)Nz$No inference backends are available.zInference backend z is unavailable.r   )r   r   r   zYPaddle version %s is not supported yet. The prior knowledge of Paddle 3.1.1 will be used.)r   r   r   N)r   r      )r   r   r   z# is not a supported Paddle version.x86_64cpu_x64z! is not a supported architecture.)NzNo CUDA version was found.gpu_cudaz  is not a supported device type.)Nz#No prior knowledge can be utilized.z is not a known model.paddle_mkldnnnvinferpaddle_tensorrt)Nz%No inference backend can be selected.z& is not a supported inference backend.run_modemkldnntrt)Nz"Unsupported backend configuration.)r+   paddle_fp16r7   r9   paddle_tensorrt_fp16r=   trt_fp32r>   trt_fp16)r0   tensorrt_fp16rA   	precisionfp16)#ultra_inferr&   r'   r(   r)   auto_paddle2onnxr   appenddevice_typebackendreprr   r
   debugplatformunamemachinelowerr   r!   pdx_model_namecopyr   
startswithremover   r   util	find_specctypesfind_libraryr   listbackend_configupdate)r"   r#   r&   r'   r(   r)   is_onnx_model_availableavailable_backendspaddle_versionrL   archkeycuda_versionhpi_model_info_collection!hpi_model_info_collection_for_envsupported_pseudo_backendspbsupported_backendsbackend_to_pseudo_backendsrH   suggested_backendpseudo_backendsrequested_base_pseudo_backendpseudo_backendsuggested_backend_configs                            r    $suggest_inference_backend_and_configrk   +   sX   
  %3""'F'H'H"9"TX=T;!!(+  #""e+!!*-#""n4!!-0#""e+!!*-dk1j6L6LPU6U!!$';%**<*<DV*V)$z/A/A*B)CCSTTT')NbqY&g	
 )#-v-.2C2K!!%nQ&7%89J8KLN *+N1,=+>~a?P>QR 
 AB
 	

 & }}""$8CDJ<'HIII			5	(.05#A'Z33455UVVV > @
+:(A(F~(V%  (IIZ66788NOOO A!!!
df   !!j&<&<&E+A.B}}_--)004 /
 	NN$$Z00KK$$Y//""e++A.B}}.//)004 / !,T!2'==""G]]:&& GG)g=O.O!!'*"7+2226 ( <%%77
**+,,RS  '...q101BCO  ,(,%(Z666,,Z8CCHMM4C1..z:EEeLL4E1(%==!>?? & B$Q'N!H$ "
 
 	 	 
 X%$++Z,BC},$++Z,GH.$++Z,BC00$++Z,DE55$++Z,DE	j	(!>>NN>_,$++[&,AB  , ''
(A(AB666    )%__doc__ctypes.utilrU   importlib.resourcesr   importlib.utilr   rK   collectionsr   	functoolsr   typingr   r   r   r   utilsr
   
utils.depsr   r   	utils.envr   r   utils.flagsr   
utils.miscr   utils.model_pathsr   configr   r   r!   strrk    rl   r    <module>r}      s    @      #  * *  S F ( . + / 1  &s7s7s7 5!4S>12E$)4DDEs7 's7rl   