
    Ng}                        U d dl mZ d dlZd dlZd dl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 d dlmZ d	Zi ad
ed<   ddZ e            \  ZZddZdddZ G d de          ZdS )    )annotationsN)DictOptionalTupleType)MODEL_TYPESUnstructuredDetectronONNXModel)UnstructuredModelUnstructuredYoloXModel)LazyDictyoloxzDict[str, UnstructuredModel]modelsreturnETuple[Dict[str, Type[UnstructuredModel]], Dict[str, dict | LazyDict]]c                 j    i d t           D             d t          D             i t           t          fS )zKdefault model mappings for models that are in `unstructured_inference` repoc                    i | ]
}|t           S  r	   .0names     ^/var/www/html/ai-engine/env/lib/python3.11/site-packages/unstructured_inference/models/base.py
<dictcomp>z.get_default_model_mappings.<locals>.<dictcomp>   s    
X
X
XD4/
X
X
X    c                    i | ]
}|t           S r   r   r   s     r   r   z.get_default_model_mappings.<locals>.<dictcomp>   s    
F
F
FD4'
F
F
Fr   )DETECTRON2_ONNX_MODEL_TYPESYOLOX_MODEL_TYPESr   r   r   get_default_model_mappingsr      sP    

X
X<W
X
X
X
F
F4E
F
F
F <
%;):;< <r   model_configdictmodel_classr   c                    t                               |            t                              fd| D                        dS )zRegister this model in model_config_map and model_class_map.

    Those maps are updated with the with the new model class information.
    c                    i | ]}|S r   r   )r   r   r"   s     r   r   z&register_new_model.<locals>.<dictcomp>)   s    GGG$D+GGGr   N)model_config_mapupdatemodel_class_map)r    r"   s    `r   register_new_modelr(   #   sH    
 L)))GGGG,GGGHHHHHr   
model_nameOptional[str]c                >   | *t           j                            d          }||nt          } | t          v rt          |          S t           j                            d          }|et          |          5 }t          j        |          }d |d                                         D             }||d<   ddd           n# 1 swxY w Y   n)| t          v rt          |          }nt          d|            t          |                      } |j        di | |t          | <   |S )z$Gets the model object by model name.NUNSTRUCTURED_DEFAULT_MODEL_NAME6UNSTRUCTURED_DEFAULT_MODEL_INITIALIZE_PARAMS_JSON_PATHc                4    i | ]\  }}t          |          |S r   )int)r   keyvalues      r   r   zget_model.<locals>.<dictcomp>>   s1     " " "$.CC%" " "r   	label_mapzUnknown model type: r   )osenvirongetDEFAULT_MODELr   openjsonloaditemsr%   UnknownModelExceptionr'   
initialize)r)   default_name_from_envinitialize_param_jsonfpinitialize_paramslabel_map_int_keysmodels          r   	get_modelrC   ,   s     "
/P Q Q.C.O**Ub
Vj!!JNN+cdd('(( 	@B $	"" "2CK2P2V2V2X2X" " " .@k*	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ ))) 0 <'(Kz(K(KLLL.z:<<EE))()))F:Ls   3>B==CCc                      e Zd ZdZdS )r;   z6A model was requested with an unrecognized identifier.N)__name__
__module____qualname____doc__r   r   r   r;   r;   O   s        @@Dr   r;   )r   r   )r    r!   r"   r   )N)r)   r*   r   r   )
__future__r   r8   r3   typingr   r   r   r   ,unstructured_inference.models.detectron2onnxr   r   r
   /unstructured_inference.models.unstructuredmodelr   #unstructured_inference.models.yoloxr   r   unstructured_inference.utilsr   r6   r   __annotations__r   r'   r%   r(   rC   	Exceptionr;   r   r   r   <module>rQ      sq   " " " " " " "  				 . . . . . . . . . . . .      X W W W W W M M M M M M P P P P P P F F F F F F 1 1 1 1 1 1') ) ) ) )< < < < %?$>$@$@ !!I I I I         F	 	 	 	 	I 	 	 	 	 	r   