
    {-jg                     :   d Z ddlmZ ddlmZmZmZmZmZ ddl	m
Z
 ddlmZ ddlmZ dd	lmZ dd
lmZmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZmZ deeeef                  deeef         deeef         fdZ  G d de          Z! G d de          Z"dS )zPaddle engines.    )Path)AnyDictOptionalTupleType   )MODEL_FILE_PREFIX)logging)is_dep_available   )get_hpi_info)PaddleDynamicRunnerPaddleStaticRunner)InferenceRunnerPaddleDynamicRunnerConfigPaddleStaticRunnerConfig)LocalModelFormat   )RunnerBuilderRunnerEnginemodel_configengine_configreturnc                 j   t          |           }||S d }|j        r|j        j        }||S |                    d          .|j        't          j        d|j                   i |d|j        i}|                    d          .|j        't          j        d|j                   i |d|j        i}|S )Ntrt_dynamic_shapesz!TensorRT dynamic shapes set to %strt_dynamic_shape_input_dataz+TensorRT dynamic shape input data set to %s)r   backend_configspaddle_infergetr   r   debugr   )r   r   hpi_infopaddle_infos       g/var/www/html/banglarbhumi/venv/lib/python3.11/site-packages/paddlex/inference/models/engines/paddle.py_inject_trt_infor'       s    L))HK <.;.//7*6/1O	
 	
 	


 +"@
 

 	899A4@94	
 	
 	


*K,T
 
     c                       e Zd ZdZdZedefd            Zedee	         fd            Z
ddddeeef         d	ee         d
ee         deeef         fdZddZdefdZdeddfdZdS )PaddleStaticEnginez)Engine for Paddle static-graph inference.paddle_staticr   c                     dS )Nr+    selfs    r&   namezPaddleStaticEngine.nameK   s    r(   c                     t           S Nr   r.   s    r&   engine_config_modelz&PaddleStaticEngine.engine_config_modelO   s    ''r(   N
model_namedevicerawr5   r6   c                    ~t          t          j                  fd|                                D             }|                     ||           |S )Nc                 $    i | ]\  }}|v 	||S r-   r-   ).0keyvaluevalid_fieldss      r&   
<dictcomp>z:PaddleStaticEngine.prepare_config_dict.<locals>.<dictcomp>\   s)    OOOjc53,;N;NsE;N;N;Nr(   )setr   model_fieldsitems_apply_device)r/   r7   r5   r6   r=   s       @r&   prepare_config_dictz&PaddleStaticEngine.prepare_config_dictS   sU     3@AAOOOOCIIKKOOO3'''
r(   c                 B    t          d          st          d          d S )NpaddlepaddlezYEngine 'paddle_static' is unavailable because dependency 'paddlepaddle' is not installed.r   RuntimeErrorr.   s    r&   ensure_environmentz%PaddleStaticEngine.ensure_environment`   3    // 	3  	 	r(   c                     d ddt           dt          t                   dt          t          t           t          f                  dt          t           t          f         dt          t
                   dt          fd}|S )	N)default_builderr5   	model_dirr   r   rK   r   c                     ~|t          d          t          |t          |                    }t          | |t          |          S )Nz3`model_dir` is required for engine='paddle_static'.)r5   rL   model_file_prefixconfig)
ValueErrorr'   dictr   r
   )r5   rL   r   r   rK   runner_configs         r&   runner_builderzEPaddleStaticEngine.get_default_runner_builder.<locals>.runner_builderh   sV        !VWWW,\4;N;NOOM%%#"3$	   r(   )strr   r   r   r   r   r   )r/   rS   s     r&   get_default_runner_builderz-PaddleStaticEngine.get_default_runner_builderg   s     8<	 	 		  ~	 #4S>2		
  S>	 &m4	 	 	 	 	& r(   runnerc                 z    t          |t                    s%t          dt          |          j         d          d S )Nz@Engine 'paddle_static' must build a PaddleStaticRunner, but got .)
isinstancer   	TypeErrortype__name__r/   rV   s     r&   validate_runnerz"PaddleStaticEngine.validate_runner}   sQ    &"455 	4<<04 4 4  	 	r(   r   N)r\   
__module____qualname____doc__entitiespropertyrT   r0   r   r   r3   r   r   r   rC   rH   r   rU   r   r^   r-   r(   r&   r*   r*   F   s&       33Hc    X (T*B%C ( ( ( X( %) $  #s(^ SM	
  
c3h      M    ,o $      r(   r*   c                   
   e Zd ZdZdZedefd            Zedee	         fd            Z
deeedf                  fdZddd	d
eeef         dee         dee         deeef         fdZddZdee         fdZdeddfdZdS )PaddleDynamicEnginez*Engine for Paddle dynamic-graph inference.paddle_dynamicr   c                     dS )Nrg   r-   r.   s    r&   r0   zPaddleDynamicEngine.name   s    r(   c                     t           S r2   r   r.   s    r&   r3   z'PaddleDynamicEngine.engine_config_model   s    ((r(   .c                     dS )N)safetensors
paddle_dynr-   r.   s    r&   get_supported_model_formatsz/PaddleDynamicEngine.get_supported_model_formats   s
     -,r(   Nr4   r7   r5   r6   c                4    ~|                      ||           |S r2   )rB   )r/   r7   r5   r6   s       r&   rC   z'PaddleDynamicEngine.prepare_config_dict   s"     3'''
r(   c                 B    t          d          st          d          d S )NrE   zZEngine 'paddle_dynamic' is unavailable because dependency 'paddlepaddle' is not installed.rF   r.   s    r&   rH   z&PaddleDynamicEngine.ensure_environment   rI   r(   c                     d S r2   r-   r.   s    r&   rU   z.PaddleDynamicEngine.get_default_runner_builder   s    tr(   rV   c                 z    t          |t                    s%t          dt          |          j         d          d S )NzBEngine 'paddle_dynamic' must build a PaddleDynamicRunner, but got rX   )rY   r   rZ   r[   r\   r]   s     r&   r^   z#PaddleDynamicEngine.validate_runner   sQ    &"566 	4<<04 4 4  	 	r(   r_   )r\   r`   ra   rb   rc   rd   rT   r0   r   r   r3   r   r   r   rm   r   r   rC   rH   r   rU   r   r^   r-   r(   r&   rf   rf      sW       44H c       X  )T*C%D ) ) ) X)-	%(#-.	/- - - - %) $	 	 	#s(^	 SM		
 	 
c3h	 	 	 	   H],C    o $      r(   rf   N)#rb   pathlibr   typingr   r   r   r   r   	constantsr
   utilsr   
utils.depsr   hpir   runnersr   r   runners.inference_runnerr   runners.paddle_dynamic_runnerr   runners.paddle_staticr   utils.model_pathsr   _baser   r   rT   r'   r*   rf   r-   r(   r&   <module>r~      s            3 3 3 3 3 3 3 3 3 3 3 3 3 3 + + + + + +       + + + + + +       = = = = = = = = 6 6 6 6 6 6 E E E E E E < < < < < < 0 0 0 0 0 0 . . . . . . . .#4S>*#S># 
#s(^# # # #L< < < < < < < <~, , , , ,, , , , , ,r(   