
    }-jN                         d dl Z d dlmZmZ ddlmZmZmZmZm	Z	m
Z
 ddlmZmZ ddlmZmZmZ ddlmZmZmZ ddlmZ dd	lmZmZmZ dd
lmZmZmZm Z m!Z!  G d d          Z"dS )    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                      e Zd ZdZ	 	 	 	 	 d+dee         dee         deded	ee         f
d
Zd Zd Z	d Z
dddddej        fdee         dee         dee         dee         dee         deeef         defdZej        dddddfdeeef         dee         dee         dee         dee         dee         defdZdddddej        fdee         dee         dee         dee         dee         deeef         defdZej        dddddfdeeef         dee         dee         dee         dee         dee         defdZdeeef         defdZdeeef         defdZdedefdZdedefdZddd d!ed"ed#ed$ee         def
d%Zdd&d'ed"ed#ede fd(Z!dd&d'ed"ed#ede fd)Z"dedee         dee         dee         dee         defd*Z#dS ),PaddleOCRClientu   Synchronous blocking client for PaddleOCR official API.

    Wraps the async job API internally: submit → poll → fetch result.
    N     r@     @tokenbase_urlrequest_timeoutpoll_timeoutclient_platformc                 @   |pt           j                            dd          | _        | j        st	          d          |p%t           j                            d          pt
          }t          | j        |||          | _        t          | j        |          | _	        d S )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          \/var/www/html/banglarbhumi/venv/lib/python3.11/site-packages/paddleocr/_api_client/client.py__init__zPaddleOCRClient.__init__0   s     Krz~~.FKK{ 	O   P
';<<P@P 	  K+	
 
 

 djEEE    c                     | S N r1   s    r3   	__enter__zPaddleOCRClient.__enter__H   s    r5   c                 .    |                                   d S r7   )close)r1   argss     r3   __exit__zPaddleOCRClient.__exit__K   s    

r5   c                 8    | j                                          d S r7   )r/   r<   r9   s    r3   r<   zPaddleOCRClient.closeN   s    
r5   file_url	file_pathoptionspage_rangesbatch_idmodelreturnc                     t          |          }|                     ||||||          }| j                            |          \  }}	t	          ||          S r7   )r
   _submitr0   poll_until_doner   )
r1   r@   rA   rB   rC   rD   rE   job_id
jsonl_data_s
             r3   ocrzPaddleOCRClient.ocrQ   sa     "%((
 
 44V<<
A
333r5   c                     t          |          }t          ||          }|                     ||||||          }| j                            |          \  }}	t          ||          S r7   )r   r	   rH   r0   rI   r   )
r1   rE   r@   rA   rB   rC   rD   rJ   rK   rL   s
             r3   parse_documentzPaddleOCRClient.parse_documentf   sk     'u--*5'::8Yh
 
 44V<<
A'
;;;r5   c                     t          |          }|                     ||||||          }t          ||j        d          S )NrM   rJ   rE   task)r
   rH   r   value)r1   r@   rA   rB   rC   rD   rE   rJ   s           r3   
submit_ocrzPaddleOCRClient.submit_ocrw   sO     "%((
 
 &%@@@@r5   c                     t          |          }t          ||          }|                     ||||||          }t          ||j        d          S )Ndocument_parsingrQ   )r   r	   rH   r   rS   )r1   rE   r@   rA   rB   rC   rD   rJ   s           r3   submit_document_parsingz'PaddleOCRClient.submit_document_parsing   sZ     'u--*5'::8Yh
 
 &:LMMMMr5   jobc                 |    t          |d          }| j                            |          \  }}t          ||          S )NrM   )r   r0   rI   r   r1   rX   rJ   rK   rL   s        r3   wait_ocr_resultzPaddleOCRClient.wait_ocr_result   s:     e,,44V<<
A
333r5   c                 |    t          |d          }| j                            |          \  }}t          ||          S )NrV   )r   r0   rI   r   rZ   s        r3   wait_document_parsing_resultz,PaddleOCRClient.wait_document_parsing_result   s;     &89944V<<
A'
;;;r5   rJ   c                 6    | j                             |          S r7   )r0   
get_status)r1   rJ   s     r3   r_   zPaddleOCRClient.get_status   s    |&&v...r5   c                 6    | j                             |          S r7   )r0   get_batch_status)r1   rD   s     r3   ra   z PaddleOCRClient.get_batch_status   s    |,,X666r5   F)	overwritefilenameresource_urldestinationrb   rc   c                >    t          ||||| j        j                  S )N)rb   rc   timeout)r   r/   rg   )r1   rd   re   rb   rc   s        r3   r   zPaddleOCRClient.save_resource   s/     J&
 
 
 	
r5   )rb   resultc                <    t          |||| j        j                  S N)rb   rg   )r   r/   rg   r1   rh   re   rb   s       r3   r   z)PaddleOCRClient.save_ocr_result_resources   s,     )J&	
 
 
 	
r5   c                <    t          |||| j        j                  S rj   )r   r/   rg   rk   s       r3   r   z6PaddleOCRClient.save_document_parsing_result_resources   s,     6J&	
 
 
 	
r5   c                     t          ||           |r|                                nt          |          }|r$| j                            |j        ||||          S | j                            |j        ||||          S )N)rC   rD   )r   
to_payloadr   r/   
submit_urlrS   submit_file)r1   rE   r@   rA   rB   rC   rD   payloads           r3   rH   zPaddleOCRClient._submit   s     	h	222*1M'$$&&&u7M7M 	:(('! )    z%%K# & 
 
 	
r5   )NNr   r    N)$__name__
__module____qualname____doc__r   strfloatr4   r:   r>   r<   r   PP_OCRV5r   r   r   rM   PADDLE_OCR_VL_16r   r   rO   r   rT   rW   r[   r]   r   r_   r   ra   boolr   listr   r   rH   r8   r5   r3   r   r   *   s          $"&!&#)-F F}F 3-F 	F
 F "#F F F F0      
 #'#'(,%)"&#(>4 43-4 C=4 *%	4
 c]4 3-4 UCZ 4 
4 4 4 4. $)#9"&#'/3%)"&< <UCZ < 3-< C=	<
 +,< c]< 3-< 
< < < <& #'#'(,%)"&#(>A A3-A C=A *%	A
 c]A 3-A UCZ A 
A A A A, $)#9"&#'/3%)"&N NUCZ N 3-N C=	N
 +,N c]N 3-N 
N N N N 45c? 4y 4 4 4 4
<c3h <DT < < < <
/ / / / / /7 7 7 7 7 7  "&
 
 

 

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

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

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