
    9iO*                     N   % 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JrJr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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\5      r' " S S\5      r( " S S\5      r) " S S\5      r*\S   r+\\,S'    " S S\5      r- " S S\5      r. " S S\5      r/ " S S \5      r0 " S! S"\5      r1 " S# S$\5      r2\S%   r3\\,S&'   \
" S5      S' 5       r4\" S(5      S)\1S*\&S+\\\+\\5\4   4   \S\54   4   4S, j5       r6g)-    N)defaultdict)	lru_cache)AnyDictListLiteralOptionalTupleUnion)	BaseModelField)	Annotated	TypeAlias   )logging)function_requires_depsis_paddle2onnx_plugin_available)get_paddle_cuda_versionget_paddle_version)USE_PIR_TRT   )is_mkldnn_available)
ModelPathsc                   j    \ rS rSr% Sr\\\\\\	      4      \
S'   Sr\\\\\\      4      \
S'   Srg)PaddleInferenceInfo#   Ntrt_dynamic_shapestrt_dynamic_shape_input_data )__name__
__module____qualname____firstlineno__r   r	   r   strr   int__annotations__r   float__static_attributes__r       [/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/paddlex/inference/utils/hpi.pyr   r   #   sG    ?Cc4S	?&:!;<CKO (4T$u+5F0F+G"HOr)   r   c                   @    \ rS rSr% Sr\\\\\\	      4      \
S'   Srg)TensorRTInfo(   Ndynamic_shapesr   )r    r!   r"   r#   r.   r	   r   r$   r   r%   r&   r(   r   r)   r*   r,   r,   (   s#    ;?NHT#tDI"678?r)   r,   c                   >    \ rS rSr% Sr\\   \S'   Sr\\	   \S'   Sr
g)InferenceBackendInfoCollection,   Npaddle_infertensorrtr   )r    r!   r"   r#   r2   r	   r   r&   r3   r,   r(   r   r)   r*   r0   r0   ,   s!    26L(./6'+Hh|$+r)   r0   c                   *    \ rS rSr% Sr\\   \S'   Srg)HPIInfo2   Nbackend_configsr   )	r    r!   r"   r#   r7   r	   r0   r&   r(   r   r)   r*   r5   r5   2   s    @DOX<=Dr)   r5   )paddleopenvinoonnxruntimer3   omInferenceBackendc                   $    \ rS rSr% Sr\\S'   Srg)OpenVINOConfig<   
   cpu_num_threadsr   Nr    r!   r"   r#   rA   r%   r&   r(   r   r)   r*   r>   r>   <       OSr)   r>   c                   $    \ rS rSr% Sr\\S'   Srg)ONNXRuntimeConfig@   r@   rA   r   NrB   r   r)   r*   rE   rE   @   rC   r)   rE   c                   b    \ rS rSr% Sr\S   \S'   Sr\\S'   Sr	\
\\\\\      4      \S'   S	rg)
TensorRTConfigD   fp32)rJ   fp16	precisionTuse_dynamic_shapesNr.   r   )r    r!   r"   r#   rL   r   r&   rM   boolr.   r	   r   r$   r   r%   r(   r   r)   r*   rH   rH   D   s=    )/Iw~&/##;?NHT#tDI"678?r)   rH   c                       \ rS rSrSrg)OMConfigK   r   N)r    r!   r"   r#   r(   r   r)   r*   rP   rP   K   s    r)   rP   c                       \ rS rSr% \\\" SS94   \S'   \\S'   Sr\	\
   \S'   Sr\\S	'   Sr\	\   \S
'   Sr\	\\\4      \S'   Sr\	\   \S'   Sr\\S'   Srg)	HPIConfigO   
model_name)aliaspdx_model_namedevice_typeN	device_idTauto_configbackendbackend_confighpi_infoauto_paddle2onnxr   )r    r!   r"   r#   r   r$   r   r&   rY   r	   r%   rZ   rN   r[   r<   r\   r   r   r]   r5   r^   r(   r   r)   r*   rS   rS   O   sv    c5|#<<==#Ix}#K*.GX&'./3NHT#s(^,3"&Hhw&!d!r)   rS   c                   4    \ rS rSr% \\S'   Sr\\   \S'   Sr	g)	ModelInfo[   nameNr]   r   )
r    r!   r"   r#   r$   r&   r]   r	   r5   r(   r   r)   r*   r`   r`   [   s    
I"&Hhw&r)   r`   )r8   onnxr;   ModelFormatc                      [         R                  R                  [        SSS9 n [        R
                  " U 5      nS S S 5        U$ ! , (       d  f       W$ = f)Nzhpi_model_info_collection.jsonzutf-8)encoding)	importlib	resources	open_text__package__jsonload)fhpi_model_info_collections     r*   _get_hpi_model_info_collectionro   c   sT    				&	&5 
' 
	
$(IIaL!
 %$	
 
 %$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_trtrc   r8   cpur9   )rx   gpur:   ry   r3   r;   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.)r8   paddle_fp16r   r   paddle_tensorrt_fp16r   trt_fp32r   trt_fp16)r3   tensorrt_fp16r   rL   rK   )#ultra_inferrt   ru   rv   rw   r^   r   appendrX   r[   reprr   r   debugplatformunamemachinelowerr   ro   rW   copyr   
startswithremover   rg   util	find_specctypesfind_libraryr   listr\   update)rp   rq   rt   ru   rv   rw   is_onnx_model_availableavailable_backendspaddle_versionr   archkeycuda_versionrn   !hpi_model_info_collection_for_envsupported_pseudo_backendspbsupported_backendsbackend_to_pseudo_backendsr[   suggested_backendpseudo_backendsrequested_base_pseudo_backendpseudo_backendsuggested_backend_configs                            r*   $suggest_inference_backend_and_configr   l   s^     %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6r)   )7ctypes.utilr   importlib.resourcesrg   importlib.utilrk   r   collectionsr   	functoolsr   typingr   r   r   r   r	   r
   r   pydanticr   r   typing_extensionsr   r   utilsr   
utils.depsr   r   	utils.envr   r   utils.flagsr   miscr   rq   r   r   r,   r0   r5   r<   r&   r>   rE   rH   rP   rS   r`   rd   ro   r$   r   r   r)   r*   <module>r      s\        #  C C C % 2  Q D & % #P) P
@9 @,Y ,Ei E
 &9 ) 
Y 	 @Y @	y 	"	 "'	 '
 !!78Y 8 1% % &@7@7@7 5!4S>12E$)4DDE@7 '@7r)   