
    ?pjN                         S SK r S SKJrJr  SSKJrJrJrJrJ	r	J
r
  SSKJrJr  SSKJrJrJr  SSKJrJrJr  SSKJr  SS	KJrJrJr  SS
KJrJrJrJ r J!r!   " S S5      r"g)    N)OptionalUnion   )default_payloadjob_id_for_taskresolve_document_modelresolve_document_optionsresolve_ocr_modelvalidate_input_source)DEFAULT_BASE_URL
HTTPClient)Pollerparse_doc_parsing_resultparse_ocr_result)&save_document_parsing_result_resourcessave_ocr_result_resourcessave_resource)	AuthError)DocParsingOptionsModel
OCROptions)BatchStatusDocParsingResultJob	JobStatus	OCRResultc                   8   \ rS rSrSr     S+S\\   S\\   S\S\S\\   4
S	 jjrS
 r	S r
S rSSSSS\R                  4S\\   S\\   S\\   S\\   S\\   S\\\4   S\4S jjr\R$                  SSSSS4S\\\4   S\\   S\\   S\\   S\\   S\\   S\4S jjrSSSSS\R                  4S\\   S\\   S\\   S\\   S\\   S\\\4   S\4S jjr\R$                  SSSSS4S\\\4   S\\   S\\   S\\   S\\   S\\   S\4S jjrS\\\4   S\4S jrS\\\4   S\4S jrS\S\4S jrS\S\4S jrSSS.S \S!\S"\S#\\   S\4
S$ jjr SS%.S&\S!\S"\S\!4S' jjr"SS%.S&\S!\S"\S\!4S( jjr#S\S\\   S\\   S\\   S\\   S\4S) jr$S*r%g),PaddleOCRClient*   u   Synchronous blocking client for PaddleOCR official API.

Wraps the async job API internally: submit → poll → fetch result.
Ntokenbase_urlrequest_timeoutpoll_timeoutclient_platformc                 j   U=(       d     [         R                  R                  SS5      U l        U R                  (       d  [	        S5      eU=(       d,    [         R                  R                  S5      =(       d    [
        n[        U R                  UUUS9U l        [        U R                  US9U l	        g )NPADDLEOCR_ACCESS_TOKEN z=Token is required. Set PADDLEOCR_ACCESS_TOKEN or pass token=.PADDLEOCR_BASE_URL)r$   )max_wait_time)
osenvironget_tokenr   r   r   _httpr   _poller)selfr    r!   r"   r#   r$   resolved_base_urls          X/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/paddleocr/_api_client/client.py__init__PaddleOCRClient.__init__0   s     Krzz~~.FK{{O  P

';<P@P 	  KK+	

 djjE    c                     U $ N r0   s    r2   	__enter__PaddleOCRClient.__enter__H   s    r5   c                 $    U R                  5         g r7   )close)r0   argss     r2   __exit__PaddleOCRClient.__exit__K   s    

r5   c                 8    U R                   R                  5         g r7   )r.   r=   r9   s    r2   r=   PaddleOCRClient.closeN   s    

r5   file_url	file_pathoptionspage_rangesbatch_idmodelreturnc                     [        U5      nU R                  UUUUUU5      nU R                  R                  U5      u  p[	        Xx5      $ r7   )r
   _submitr/   poll_until_doner   )
r0   rC   rD   rE   rF   rG   rH   job_id
jsonl_data_s
             r2   ocrPaddleOCRClient.ocrQ   sQ     "%(
 44V<
33r5   c                     [        U5      n[        X5      nU R                  XX4XV5      nU R                  R	                  U5      u  p[        Xx5      $ r7   )r   r	   rK   r/   rL   r   )
r0   rH   rC   rD   rE   rF   rG   rM   rN   rO   s
             r2   parse_documentPaddleOCRClient.parse_documentf   sP     'u-*5:Y
 44V<
';;r5   c                 l    [        U5      nU R                  UUUUUU5      n[        XvR                  SS9$ )NrP   rM   rH   task)r
   rK   r   value)r0   rC   rD   rE   rF   rG   rH   rM   s           r2   
submit_ocrPaddleOCRClient.submit_ocrw   sA     "%(
 &%@@r5   c                 |    [        U5      n[        X5      nU R                  XX4XV5      n[        XqR                  SS9$ )Ndocument_parsingrV   )r   r	   rK   r   rX   )r0   rH   rC   rD   rE   rF   rG   rM   s           r2   submit_document_parsing'PaddleOCRClient.submit_document_parsing   sA     'u-*5:Y
 &:LMMr5   jobc                 j    [        US5      nU R                  R                  U5      u  p4[        X#5      $ )NrP   )r   r/   rL   r   r0   r_   rM   rN   rO   s        r2   wait_ocr_resultPaddleOCRClient.wait_ocr_result   s/     e,44V<
33r5   c                 j    [        US5      nU R                  R                  U5      u  p4[        X#5      $ )Nr\   )r   r/   rL   r   ra   s        r2   wait_document_parsing_result,PaddleOCRClient.wait_document_parsing_result   s0     &8944V<
';;r5   rM   c                 8    U R                   R                  U5      $ r7   )r/   
get_status)r0   rM   s     r2   rh   PaddleOCRClient.get_status   s    ||&&v..r5   c                 8    U R                   R                  U5      $ r7   )r/   get_batch_status)r0   rG   s     r2   rk    PaddleOCRClient.get_batch_status   s    ||,,X66r5   F)	overwritefilenameresource_urldestinationrm   rn   c                D    [        UUUUU R                  R                  S9$ )N)rm   rn   timeout)r   r.   rr   )r0   ro   rp   rm   rn   s        r2   r   PaddleOCRClient.save_resource   s*     JJ&&
 	
r5   )rm   resultc                B    [        UUUU R                  R                  S9$ N)rm   rr   )r   r.   rr   r0   rt   rp   rm   s       r2   r   )PaddleOCRClient.save_ocr_result_resources   s'     )JJ&&	
 	
r5   c                B    [        UUUU R                  R                  S9$ rv   )r   r.   rr   rw   s       r2   r   6PaddleOCRClient.save_document_parsing_result_resources   s'     6JJ&&	
 	
r5   c                    [        X#5        U(       a  UR                  5       O
[        U5      nU(       a'  U R                  R	                  UR
                  UUUUS9$ U R                  R                  UR
                  UUUUS9$ )N)rF   rG   )r   
to_payloadr   r.   
submit_urlrX   submit_file)r0   rH   rC   rD   rE   rF   rG   payloads           r2   rK   PaddleOCRClient._submit   s     	h2*1'$$&u7M::(('! )   zz%%KK# & 
 	
r5   )r.   r/   r-   )NNg     r@g     @N)&__name__
__module____qualname____firstlineno____doc__r   strfloatr3   r:   r?   r=   r   PP_OCRV6r   r   r   rP   PADDLE_OCR_VL_16r   r   rS   r   rY   r]   rb   re   r   rh   r   rk   boolr   listr   r   rK   __static_attributes__r8   r5   r2   r   r   *   s     $"&!&#)-F}F 3-F 	F
 F "#F0
 #'#'(,%)"&#(>>43-4 C=4 *%	4
 c]4 3-4 UCZ 4 
4. $)#9#9"&#'/3%)"&<UCZ < 3-< C=	<
 +,< c]< 3-< 
<& #'#'(,%)"&#(>>A3-A C=A *%	A
 c]A 3-A UCZ A 
A, $)#9#9"&#'/3%)"&NUCZ N 3-N C=	N
 +,N c]N 3-N 
N 45c? 4y 4
<c3h <DT <
/ / /7 7 7  "&

 

 
 3-
 

*  

 

 
 

&  
 
 

 
 



 3-
 C=	
 c]
 3-
 

r5   r   )#r*   typingr   r   _corer   r   r   r	   r
   r   r.   r   r   r/   r   r   r   
_resourcesr   r   r   errorsr   modelsr   r   r   resultsr   r   r   r   r   r   r8   r5   r2   <module>r      sP    
 "  0 G G 
  
 N MF
 F
r5   