
    j                         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	m
Z
 dZ G d d	e j        
          Z G d de          ZdS )    N)create_predictor)DependencyError   )CLISubcommandExecutor)add_common_cli_optsparse_common_argsprepare_common_init_argsFc                        e Zd Zddd fd
Zeej        d                         Zd Zd Z	d Z
eej        d                         Zd	 Zd
 Z xZS )PaddleXPredictorWrapperN
model_name	model_dirc                    t                                                       ||n| j        | _        || _        t          |t                    | _        |                                 | _	        d S )N)default_enable_hpi)
super__init__default_model_name_model_name
_model_dirr   _DEFAULT_ENABLE_HPI_common_args_create_paddlex_predictorpaddlex_predictor)selfr   r   common_args	__class__s       f/lsinfo/ai/hellotax_ai/data_center/backend/venv/lib/python3.11/site-packages/paddleocr/_models/base.pyr   z PaddleXPredictorWrapper.__init__   st     	$0JJd6M 	 $-,?
 
 
 "&!?!?!A!A    c                     t           NNotImplementedErrorr   s    r   r   z*PaddleXPredictorWrapper.default_model_name0   
     "!r   c                 &     | j         j        |i |S r    )r   predict)r   argskwargss      r   predict_iterz$PaddleXPredictorWrapper.predict_iter5   s    -t%-t>v>>>r   c                 :    t           | j        |i |          }|S r    )listr)   )r   r'   r(   results       r   r&   zPaddleXPredictorWrapper.predict8   s'    'd'88899r   c                 8    | j                                          d S r    )r   closer#   s    r   r.   zPaddleXPredictorWrapper.close<   s    $$&&&&&r   c                     t           r    r!   )clss    r   get_cli_subcommand_executorz3PaddleXPredictorWrapper.get_cli_subcommand_executor?   r$   r   c                     i S r     r#   s    r   &_get_extra_paddlex_predictor_init_argsz>PaddleXPredictorWrapper._get_extra_paddlex_predictor_init_argsD   s    	r   c                     t          | j        | j                  }i |                                 |}	 t	          d| j        | j        d|S # t          $ r}t          d          |d }~ww xY w)Nr   zA dependency error occurred during predictor creation. Please refer to the installation documentation to ensure all required dependencies are installed.r3   )r	   r   r   r4   r   r   r   RuntimeError)r   r(   es      r   r   z1PaddleXPredictorWrapper._create_paddlex_predictorG   s    )$*:D<MNNLD??AALVL	# +t JP    	 	 	 k 	s   A 
A,A''A,)__name__
__module____qualname__r   propertyabcabstractmethodr   r)   r&   r.   classmethodr1   r4   r   __classcell__)r   s   @r   r   r      s         	B B B B B B B" " "  X"? ? ?  ' ' ' " "  ["        r   r   )	metaclassc                   d    e Zd Zeej        d                         Zd Zej        d             ZdS )PredictorCLISubcommandExecutorc                     t           r    r!   r#   s    r   subparser_namez-PredictorCLISubcommandExecutor.subparser_nameV   r$   r   c                    |                     | j                  }|                     |           |                    dt          d           |                    dt          d           t          |t          d           |S )	N)namez--model_namezName of the model.)typehelpz--model_dirz$Directory where the model is stored.F)r   allow_multiple_devices)
add_parserrD   _update_subparseradd_argumentstrr   r   )r   
subparsers	subparsers      r   add_subparserz,PredictorCLISubcommandExecutor.add_subparser[   s    ))t/B)CC	y)))~C>RSSS*P 	 	
 	
 	
 	2#(	
 	
 	
 	

 r   c                     t           r    r!   )r   rO   s     r   rK   z0PredictorCLISubcommandExecutor._update_subparseri   s    !!r   N)	r8   r9   r:   r;   r<   r=   rD   rP   rK   r3   r   r   rB   rB   U   si        " "  X"   	" " " " "r   rB   )r<   paddlexr   paddlex.utils.depsr   	_abstractr   r   r   r   r	   r   ABCMetar   rB   r3   r   r   <module>rV      s    


 $ $ $ $ $ $ . . . . . . - - - - - -           4 4 4 4 4 4 4 4 4n" " " " "%: " " " " "r   