
    {-j                        U d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	m
Z
mZmZmZ ddlmZ ddlmZ ed	         Zd
ed<    ee	edf          ee                    Zded<    G d de
d          ZefddZefddZdS )zPModel file paths and format resolution for inference model directory convention.    )annotations)PathLike)Path)LiteralTuple	TypedDictUnioncastget_args)	TypeAlias   )MODEL_FILE_PREFIX)paddleonnxom
paddle_dynsafetensorsr   LocalModelFormat.zTuple[LocalModelFormat, ...]LOCAL_MODEL_FORMATSc                  F    e Zd ZU dZded<   ded<   ded<   ded<   ded<   d	S )

ModelPathsz7Resolved local model files keyed by `LocalModelFormat`.zTuple[Path, Path]r   r   r   r   r   r   N)__name__
__module____qualname____doc____annotations__     j/var/www/html/banglarbhumi/venv/lib/python3.11/site-packages/paddlex/inference/models/utils/model_paths.pyr   r   (   sN         AAJJJHHHr   r   F)total	model_dirUnion[str, PathLike]model_file_prefixstrreturnc                V   t          |           } i }d }| | dz                                  r	| | dz  }n"| | dz                                  r| | dz  }|r'| | dz                                  r|| | dz  f|d<   | | dz                                  r| | dz  |d<   | | dz                                  r| | dz  |d<   | d	z                                  r| d	z  |d
<   | dz                                  r| dz  |d
<   | dz                                  r| dz  |d<   |S )Nz.jsonz.pdmodelz
.pdiparamsr   z.onnxr   z.omr   zmodel_state.pdparamsr   zinference.pdparamszmodel.safetensorsr   )r   exists)r!   r#   model_pathspd_model_paths       r   get_model_pathsr*   2   s    YI KM(////7799 C!'8$?$?$??
*444
4	<	<	>	> C!'8$B$B$BB 
)):&F&F&FFNNPP 
,8888!
H 	(////7799 F'->*E*E*EEF(----5577 B%+<(A(A(AAD**2244 G$-0F$FL!((0022 E$-0D$DL!''//11 E%.1D%DM"r   Union[str, PathLike, Path]
str | Nonec                d    t          t          |           |          }d|v rdS d|v rdS d|v rdS dS )zResolve paddle_static vs paddle_dynamic from actual model files.

    Returns:
        "paddle_static", "paddle_dynamic", or None if no paddle model files found.
    r   paddle_staticr   paddle_dynamicr   N)r*   r   )r!   r#   pathss      r   &resolve_paddle_engine_from_model_filesr1   O   sQ     DOO->??E5u4r   N)r!   r"   r#   r$   r%   r   )r!   r+   r#   r$   r%   r,   )r   
__future__r   osr   pathlibr   typingr   r   r   r	   r
   r   typing_extensionsr   	constantsr   r   r   r   r   r*   r1   r   r   r   <module>r8      sy   W V V " " " " " "             C C C C C C C C C C C C C C C C ' ' ' ' ' ' + + + + + +%      59D	
C
 ((+;"<"<5 5     
    %     /    > /      r   