
    9i                         S SK r S SKrS SKJr  S SKJr  S SKJr  S SKJ	r	  SSK
Jr  SSKJrJrJr  SrS	 rS
 r " S S\ R&                  S9r " S S\5      rg)    N)create_pipeline)load_pipeline_config)AttrDict)DependencyError   )CLISubcommandExecutor)add_common_cli_optsparse_common_argsprepare_common_init_argsc                     U R                  5       nUR                  5        HL  u  p4X2;   a>  [        X#   [        5      (       a'  [        U[        5      (       a  [	        X#   U5      X#'   MH  XBU'   MN     U$ N)copyitems
isinstancedict_merge_dicts)d1d2reskvs        Y/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/paddleocr/_pipelines/base.pyr   r   !   s\    
'')C
8
36400Z45H5H!#&!,CFF	 
 J    c                    [        U [        5      (       a/  U R                  5        VVs0 s H  u  pU[        U5      _M     snn$ [        U [        5      (       a/  U R                  5        VVs0 s H  u  pU[        U5      _M     snn$ [        U [
        5      (       a  U  Vs/ s H  n[        U5      PM     sn$ U $ s  snnf s  snnf s  snf r   )r   r   r   _to_builtinr   list)objr   r   items       r   r   r   +   s    #x  .1iik:kda;q>!k::	C		.1iik:kda;q>!k::	C		.12cdD!c22
 ;:2s   B<-C"Cc                      ^  \ rS rSrSS.U 4S jjr\\R                  S 5       5       rS r	S r
\\R                  S 5       5       rS	 rS
 rS rSrU =r$ )PaddleXPipelineWrapper6   N)paddlex_configc                   > [         TU ]  5         Xl        [        U[        S9U l        U R                  5       U l        U R                  5       U l	        g )N)default_enable_hpi)
super__init___paddlex_configr
   _DEFAULT_ENABLE_HPI_common_args_get_merged_paddlex_config_merged_paddlex_config_create_paddlex_pipelinepaddlex_pipeline)selfr"   common_args	__class__s      r   r&   PaddleXPipelineWrapper.__init__7   sM     	--,?
 '+&E&E&G# $ = = ?r   c                     [         er   NotImplementedErrorr.   s    r   _paddlex_pipeline_name-PaddleXPipelineWrapper._paddlex_pipeline_nameE   
     "!r   c                     [        USSS9 n[        U R                  5      n[        R                  " X25        S S S 5        g ! , (       d  f       g = f)Nwzutf-8)encoding)openr   r+   yaml	safe_dump)r.   	yaml_pathfconfigs       r   export_paddlex_config_to_yaml4PaddleXPipelineWrapper.export_paddlex_config_to_yamlJ   s8    )S73q !<!<=FNN6% 433s   ,A
Ac                 8    U R                   R                  5         g r   )r-   closer5   s    r   rE   PaddleXPipelineWrapper.closeO   s    ##%r   c                     [         er   r3   )clss    r   get_cli_subcommand_executor2PaddleXPipelineWrapper.get_cli_subcommand_executorR   r8   r   c                     0 $ r    r5   s    r   _get_paddlex_config_overrides4PaddleXPipelineWrapper._get_paddlex_config_overridesW   s    	r   c                     U R                   c  [        U R                  5      nOA[        U R                   [        5      (       a  [        U R                   5      nOU R                   nU R                  5       n[        X5      $ r   )r'   r   r6   r   strrM   r   )r.   rA   	overridess      r   r*   1PaddleXPipelineWrapper._get_merged_paddlex_configZ   se    ')$*E*EFF,,c22)$*>*>?F))F668	F..r   c                     [        S U R                  5      n [        SSU R                  0UD6$ ! [         a  n[        S5      UeS nAff = f)NrA   zA dependency error occurred during pipeline creation. Please refer to the installation documentation to ensure all required dependencies are installed.rL   )r   r)   r   r+   r   RuntimeError)r.   kwargses      r   r,   /PaddleXPipelineWrapper._create_paddlex_pipelinef   sX    )$0A0AB	"P$*E*EPPP 	 j	s   / 
A
AA
)r)   r+   r'   r-   )__name__
__module____qualname____firstlineno__r&   propertyabcabstractmethodr6   rB   rE   classmethodrI   rM   r*   r,   __static_attributes____classcell__)r0   s   @r   r    r    6   sv     @ @ "  "&
& "  "
/ r   r    )	metaclassc                   l    \ rS rSr\\R                  S 5       5       rS r\R                  S 5       r	Sr
g)PipelineCLISubcommandExecutorp   c                     [         er   r3   r5   s    r   subparser_name,PipelineCLISubcommandExecutor.subparser_nameq   r8   r   c                     UR                  U R                  S9nU R                  U5        [        U[        SS9  UR                  S[        SS9  U$ )N)nameT)r$   allow_multiple_devicesz--paddlex_configz,Path to PaddleX pipeline configuration file.)typehelp)
add_parserrg   _update_subparserr	   r(   add_argumentrP   )r.   
subparsers	subparsers      r   add_subparser+PipelineCLISubcommandExecutor.add_subparserv   s`    ))t/B/B)C	y)2#'	

 	? 	 	

 r   c                     [         er   r3   )r.   rr   s     r   ro   /PipelineCLISubcommandExecutor._update_subparser   s    !!r   rL   N)rX   rY   rZ   r[   r\   r]   r^   rg   rs   ro   r`   rL   r   r   rd   rd   p   sA    "  " 	" "r   rd   )r]   r=   paddlexr   paddlex.inferencer   paddlex.utils.configr   paddlex.utils.depsr   	_abstractr   r)   r	   r
   r   r(   r   r   ABCMetar    rd   rL   r   r   <module>r}      sV      # 2 ) . -   7s{{ 7t"$9 "r   