
    {-j                         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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mZ  G d de          ZdS )zHPI engine.    )Path)AnyDictOptionalTupleType   )MODEL_FILE_PREFIX)is_dep_available)get_default_deviceparse_device   )get_hpi_info)	HPIConfig	HPIRunner)InferenceRunner)LocalModelFormat   )RunnerBuilderRunnerEnginec                      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eeef         fdZddZdefdZdeddfdZdS )	HPIEnginez&Engine for HPI / UltraInfer inference.hpireturnc                     dS )Nr    selfs    d/var/www/html/banglarbhumi/venv/lib/python3.11/site-packages/paddlex/inference/models/engines/hpi.pynamezHPIEngine.name$   s    u    c                     t           S )N)r   r   s    r   engine_config_modelzHPIEngine.engine_config_model(   s    r!   .c                     dS )N)paddleonnxomr   r   s    r   get_supported_model_formatsz%HPIEngine.get_supported_model_formats,   s
     ('r!   N)
model_namedevicerawr)   r*   c                    |                     d|pd           |                     ||           |s%d|vr!t          t                                \  |d<   }|S )Nr)    device_type)
setdefault_apply_devicer   r   )r   r+   r)   r*   _s        r   prepare_config_dictzHPIEngine.prepare_config_dict1   si     	|Z%526663''' 	G-s22$01C1E1E$F$F!C
r!   c                     dddS )NT)exclude_noneby_aliasr   r   s    r   get_config_dump_kwargsz HPIEngine.get_config_dump_kwargs>   s     $$777r!   c                 B    t          d          st          d          d S )Nzultra-inferzNEngine 'hpi' is unavailable because dependency 'ultra-infer' is not installed.)r   RuntimeErrorr   s    r   ensure_environmentzHPIEngine.ensure_environmentA   s3    .. 	2  	 	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_builderr)   	model_dirmodel_configengine_configr;   r   c                     ~|t          d          t          |          }|                    d|            d|vrt          |          }|||d<   t	          j        |          }t          |t          |          S )Nz)`model_dir` is required for engine='hpi'.r)   hpi_info)r<   model_file_prefixconfig)
ValueErrordictr/   r   r   model_validater   r
   )r)   r<   r=   r>   r;   hpi_cfgr@   
hpi_configs           r   runner_builderz<HPIEngine.get_default_runner_builder.<locals>.runner_builderI   s        !LMMM=))G|Z888(('55'*2GJ'"1'::J#"3!   r!   )strr   r   r   r   r   r   )r   rH   s     r   get_default_runner_builderz$HPIEngine.get_default_runner_builderH   s     8<	 	 		  ~	 #4S>2		
  S>	 &m4	 	 	 	 	0 r!   runnerc                 z    t          |t                    s%t          dt          |          j         d          d S )Nz.Engine 'hpi' must build an HPIRunner, but got .)
isinstancer   	TypeErrortype__name__)r   rK   s     r   validate_runnerzHPIEngine.validate_runnerc   sP    &),, 	4<<04 4 4  	 	r!   )r   N)rQ   
__module____qualname____doc__entitiespropertyrI   r    r   r   r#   r   r   r   r(   r   r   r2   r6   r9   r   rJ   r   rR   r   r!   r   r   r      ss       00Hc    X T)_    X(	%(#-.	/( ( ( ( %) $  #s(^ SM	
  
c3h   8S#X 8 8 8 8   M    6o $      r!   r   N)rU   pathlibr   typingr   r   r   r   r   	constantsr
   
utils.depsr   utils.devicer   r   r   r   runners.hpir   r   runners.inference_runnerr   utils.model_pathsr   _baser   r   r   r   r!   r   <module>ra      s)            3 3 3 3 3 3 3 3 3 3 3 3 3 3 + + + + + + + + + + + + = = = = = = = =       . . . . . . . . 6 6 6 6 6 6 0 0 0 0 0 0 . . . . . . . .I I I I I I I I I Ir!   