
    wi                     :   d dl 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
Zd dlmZ ddlmZ dd	lmZmZmZmZ dd
lmZ  ee                                          j        j        Zedz  ZdefdZe G d d                      Z G d de j                  ZdS )    N)	dataclass)Enum)Path)DictUnion)	OmegaConf   )logger)
EngineType	ModelType
OCRVersionTaskType)import_packagezdefault_models.yamlengine_typec                 |   t          j        d| j                   | t          j        k    r3t          | j                  st          | j         d          ddlm} |S | t          j	        k    r3t          | j                  st          | j         d          ddl
m} |S | t          j        k    r3t          | j                  st          | j         d          ddlm} |S | t          j        k    r3t          | j                  st          | j         d          ddlm} |S t%          d	| j                   )
NzUsing engine_name: %sz is not installed.   )OrtInferSessionz is not installed)OpenVINOInferSession)PaddleInferSession)TorchInferSessionzUnsupported engine: )r
   infovaluer   ONNXRUNTIMEr   ImportErroronnxruntimer   OPENVINOopenvinor   PADDLEpaddler   TORCHtorchr   
ValueError)r   r   r   r   r   s        v/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/rapidocr/inference_engine/base.py
get_enginer$      s   
K'):;;;j,,,k/00 	H!2FFFGGG000000j)))k/00 	G!2EEEFFF222222##j'''k/00 	G!2EEEFFF......!!j&&&k/00 	G!2EEEFFF,,,,,,  
?K,=??
@
@@    c                   B    e Zd ZU eed<   eed<   eed<   eed<   eed<   dS )FileInfor   ocr_version	task_type	lang_type
model_typeN)	__name__
__module____qualname__r   __annotations__r   r   r   r    r%   r#   r'   r'   ;   sK         OOOr%   r'   c                   @   e Zd Z ej        e          Zedz  Ze	j
        d             Ze	j
        dej        dej        fd            Zedeeedf         fd            Ze	j
        dd
edefd            Zededeeef         fd            Zededefd            ZdS )InferSessionmodelsc                     d S Nr0   )selfconfigs     r#   __init__zInferSession.__init__H       r%   input_contentreturnc                     d S r5   r0   )r6   r:   s     r#   __call__zInferSession.__call__L   r9   r%   
model_pathNc                     | t          d          t          |           } |                                 st          |  d          |                                 st          |  d          d S )Nzmodel_path is None!z does not exists.z is not a file.)r"   r   existsFileNotFoundErroris_fileFileExistsError)r>   s    r#   _verify_modelzInferSession._verify_modelP   s    2333*%%
  "" 	F#z$D$D$DEEE!!## 	B!Z"@"@"@AAA	B 	Br%   	characterkeyc                     d S r5   r0   )r6   rF   s     r#   have_keyzInferSession.have_key\   r9   r%   	file_infoc                    t          j        | j        |j        j         d|j        j         d|j        j                   }|j        t          j	        k    r<|D ]9}|
                    |j        j                  r|j        j        |v r
||         c S :|D ]+}|
                    |j        j                  r
||         c S ,t          d          )N.zFile not found)r   select
model_infor   r   r(   r)   r+   r   SERVER
startswithr*   KeyError)clsrI   
model_dictks       r#   get_model_urlzInferSession.get_model_url`   s    %N$*ffY-B-Hff9K^Kdff
 

 9#333 ) )LL!4!:;;)!,2a77%a=((( 	% 	%A||I/566 %!!}$$$% '(((r%   c                 <    |                      |          }|d         S )Ndict_url)rT   )rQ   rI   rR   s      r#   get_dict_key_urlzInferSession.get_dict_key_urlv   s     &&y11
*%%r%   )rE   )r,   r-   r.   r   loadMODEL_URL_PATHrM   cur_dirDEFAULT_MODEL_PATHabcabstractmethodr8   npndarrayr=   staticmethodr   strr   rD   boolrH   classmethodr'   r   rT   rW   r0   r%   r#   r2   r2   D   sU       //J 8+   	bj RZ     	B%T4"8 	B 	B 	B \	B 	 C $     )h )4S> ) ) ) [)* & &c & & & [& & &r%   r2   ) r\   dataclassesr   enumr   pathlibr   typingr   r   numpyr^   	omegaconfr   	utils.logr
   utils.typingsr   r   r   r   utils.utilsr   __file__resolveparentrZ   rY   r$   r'   ABCr2   r0   r%   r#   <module>rq      sy   


 ! ! ! ! ! !                                     G G G G G G G G G G G G ( ( ( ( ( (
$x..
 
 
"
"
)
000#AJ #A #A #A #AL        5& 5& 5& 5& 5&37 5& 5& 5& 5& 5&r%   