
    j%                        d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlZddl	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZ ddlmZmZmZmZmZmZmZmZm Z m!Z! ddl"m#Z# ddl$m%Z% ddl&m'Z' d	 Z(d
 Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0dS )    N)Thread   )ChartParsingDocImgOrientationClassificationDocVLMFormulaRecognitionLayoutDetectionSealTextDetectionTableCellsDetectionTableClassificationTableStructureRecognitionTextDetectionTextImageUnwarping!TextLineOrientationClassificationTextRecognition)
DocPreprocessorDocUnderstandingFormulaRecognitionPipeline	PaddleOCRPaddleOCRVLPPChatOCRv4DocPPDocTranslationPPStructureV3SealRecognitionTableRecognitionPipelineV2)version)CLIDeprecationWarning)loggerc           
         t           t          t          t          t          t
          t          t          t          t          f
D ]F}|
                                }|                    |           }|                    |j                   Gd S Nexecutor)r   r   r   r   r   r   r   r   r   r   get_cli_subcommand_executoradd_subparserset_defaultsexecute_with_args
subparsersclssubcommand_executor	subparsers       ^/lsinfo/ai/hellotax_ai/data_center/backend/venv/lib/python3.11/site-packages/paddleocr/_cli.py_register_pipelinesr-   9   s    "" O O "==??'55jAA	(;(MNNNNO O    c                 4   t           t          t          t          t          t
          t          t          t          t          t          t          t          fD ]F}|                                }|                    |           }|                    |j                   Gd S r    )r   r   r   r   r	   r
   r   r   r   r   r   r   r   r#   r$   r%   r&   r'   s       r,   _register_modelsr0   K   s    '!) O O "==??'55jAA	(;(MNNNN#O Or.   c                     d }|                      d          }|                    dt          g d           |                    |           d S )Nc                     d| j          }	 t          j        dd|g           t          j        g d           d S # t          j        $ r t	          j        d           Y d S w xY w)Nzhpi-paddlex	--install)r3   r4   paddle2onnxFailed to install dependencies)variant
subprocess
check_callCalledProcessErrorsysexit)argshpips     r,   _install_hpi_depsz=_register_install_hpi_deps_command.<locals>._install_hpi_depsa   s    $dl$$	7!9k4"@AAA!"I"I"IJJJJJ, 	7 	7 	7H5666666	7s   -; #A"!A"install_hpi_depsr7   )cpugpunputypechoicesr!   
add_parseradd_argumentstrr%   )r(   r?   r+   s      r,   "_register_install_hpi_deps_commandrK   `   sg    7 7 7 %%&899I938M8M8MNNN$566666r.   c                     d }|                      d          }|                    dt          g d           |                    |           d S )Nc                     	 t          j        ddd| j         dg           d S # t           j        $ r t	          j        d           Y d S w xY w)Nr3   r4   zgenai-z-serverr6   )r8   r9   r7   r:   r;   r<   r=   s    r,   _install_genai_server_depszO_register_install_genai_server_deps_command.<locals>._install_genai_server_depso   sx    	7!K)G$,)G)G)GH     , 	7 	7 	7H5666666	7s    $ #A
Ainstall_genai_server_depsr7   )vllmsglang
fastdeployrD   r!   rG   )r(   rO   r+   s      r,   +_register_install_genai_server_deps_commandrT   n   sr    7 7 7 %%&ABBI%E%E%E     $>?????r.   c                     	 ddl m}m n# t          $ r Y d S w xY wd fd} |            }|                     d|gd          }|                    |           d S )	Nr   )get_arg_parserrun_genai_serverc                 .   | dk    rd} 	 	 t          j        d|  d| dd          }|j        d	k    rnAn+# t           j        j        t           j        j        f$ r Y nw xY wt          j        d           kd
| d|  d| d}t          j	        |           d S )Nz0.0.0.0	localhostTzhttp://:z/healthr   )timeout   zThe PaddleOCR GenAI server has been started. You can either:
    1. Set the server URL in the module or pipeline configuration and call the PaddleOCR CLI or Python API. For example:
        paddleocr doc_parser --input demo.png --vl_rec_backend z#-server --vl_rec_server_url http://zK/v1
    2. Make HTTP requests directly, or using the OpenAI client library.)
requestsgetstatus_code
exceptionsConnectionErrorTimeouttimesleepr   info)hostportbackendrespprompts        r,   #_show_prompt_when_server_is_runningzK_register_genai_server_command.<locals>._show_prompt_when_server_is_running   s    9D	|$Bd$B$BT$B$B$BANNN#s** +'79L9TU   JqMMM	K@GK KlpK KswK K K 	Fs   (5 %AAc                     t          | j        | j        | j        fd                                           	  |            d S # t
          j        $ r t          j        d           Y d S w xY w)NT)targetr=   daemonzFailed to run the server)	r   rf   rg   rh   startr8   r:   r;   r<   )r=   rk   rW   s    r,   _run_genai_serverz9_register_genai_server_command.<locals>._run_genai_server   s    6)TY5	
 	
 	
 %'''	1T""""", 	1 	1 	1H/000000	1s   A #A-,A-genai_serverresolve)parentsconflict_handlerr!   )paddlex.inference.genai.serverrV   rW   RuntimeErrorrH   r%   )r(   rV   rp   paddlex_parserr+   rk   rW   s        @@r,   _register_genai_server_commandrx   ~   s    SSSSSSSSS     "	1 	1 	1 	1 	1 	1 $^%%N%% 09 &  I $566666s    
c                    d }|                      dd          }|                    ddt          dd	           |                    d
dt          dd	           |                    dddd           |                    ddd           |                    ddd           |                    ddd           |                    dt          dd	           |                    dt          dd	           |                    |           dS )zRegister the doc2md subcommand.c                    | j         rAddlm}  |            }t          dd                    d |D                       z              d S | j        s(t          j        d           t          j	        d           ddlm
} d	d
lm} | j        }| j        }i }| j        rd|d<   | j        rd|d<   | j        
| j        |d<   | j        
| j        |d<   t'          j                    }	  || j        fd|i|}	nB# t(          $ r5}
t          j        d|
            t          j	        d           Y d }
~
nd }
~
ww xY wt'          j                    |z
  dz  }|st          j        d|dd           |rO|sIt          j        d|            |	j        r-t          j        d ||          j        dz   d           d S d S d S t          |	j                   d S )Nr   )supported_formatszSupported formats: z, c              3       K   | ]	}d | V  
dS ).N ).0fs     r,   	<genexpr>zD_register_doc2md_command.<locals>._execute_doc2md.<locals>.<genexpr>   s(      3J3JGGG3J3J3J3J3J3Jr.   z---input is required when --formats is not set   )convertr   )PathFextract_drawingsextract_headers_footers
sheet_namemax_rowsoutputzConversion failed: i  zConversion done in z.0fz msz
Saved to: zImages saved to: images/)formats_doc2mdr{   printjoininputr   errorr;   r<   r   pathlibr   r   quietno_drawingsno_headers_footersr   r   rc   	Exceptionre   r   parentmarkdown)r=   r{   fmtsr   r   r   r   converter_kwargst1resulteelapseds               r,   _execute_doc2mdz1_register_doc2md_command.<locals>._execute_doc2md   sq   < 	222222$$&&D'$))3J3JT3J3J3J*J*JJKKKFz 	LHIIIHQKKK$$$$$$      
  	938/0" 	@:?67?&-1_\*=$+/=Z(Y[[	WTZKKK:JKKFF 	 	 	L2q22333HQKKKKKKKK	 9;;#t+ 	@K>g>>>>??? 	# W111222= WK UDDLL4G(4R U U UVVVVVW WW W &/"""""s   "C3 3
D2=+D--D2doc2mdz5Convert office documents (docx/xlsx/pptx) to Markdown)helpz-iz--inputNz#Input file path (.docx/.xlsx/.pptx))rE   defaultr   z-oz--outputz7Output Markdown file path (prints to stdout if omitted)z-qz--quiet
store_truezSuppress informational output)actionr   z	--formatszList supported formats and exitz--no-drawingsz<[docx/xlsx] Skip text box / drawing layer content extractionz--no-headers-footersz0[docx] Skip header and footer content extractionz--sheet-namez1[xlsx] Convert only the specified sheet (by name)z
--max-rowsz2[xlsx] Maximum number of rows to convert per sheetr!   )rH   rI   rJ   intr%   )r(   r   r+   s      r,   _register_doc2md_commandr      s   .# .# .#` %%D &  I 2     F     ,	     .     K    
 ?     @	     A	     O44444r.   c                  R   t          j        d          } |                     ddddt                      |                     d	          }t          |           t          |           t          |           t          |           t          |           t          |           | S )
N	paddleocr)progz-vz	--versionr   z	%(prog)s )r   r   
subcommand)dest)argparseArgumentParserrI   r   add_subparsersr-   r0   rK   rT   rx   r   )parserr(   s     r,   _get_parserr     s    $+666F
k)5J5J5J     &&L&99J
###Z   &z222/
;;;":...Z(((Mr.   c                 0    |                      |            d S )Nr!   rN   s    r,   _executer   "  s    MM$r.   c                  N   t          j        t          j                   t	          j        dt                     t                      } |                                 }|j	        3| 
                    t          j                   t          j        d           t          |           d S )Nr   )categoryr   )r   setLevelloggingINFOwarningsfilterwarningsr   r   
parse_argsr   print_usager;   stderrr<   r   )r   r=   s     r,   mainr   &  s    
OGL!!!I0EFFFF]]FD3:&&&TNNNNNr.   )1r   r   r8   r;   rc   r   	threadingr   r]   _modelsr   r   r   r   r	   r
   r   r   r   r   r   r   r   
_pipelinesr   r   r   r   r   r   r   r   r   r   _versionr   _utils.deprecationr   _utils.loggingr   r-   r0   rK   rT   rx   r   r   r   r   r~   r.   r,   <module>r      s@         



                                                                    5 5 5 5 5 5 " " " " " "O O O$O O O*7 7 7@ @ @ '7 '7 '7Th5 h5 h5V        r.   