
    }-jv                     &   d dl Z d dlZd dlmZmZmZ d dlZddlmZm	Z	m
Z
mZ ddlmZmZmZmZ dZdZdej        d	dfd
Zdej        d	efdZdej        d	eeef         fdZdej        d	eeef         fdZdej        d	efdZ G d d          ZdS )    N)AnyDictOptional   ) extract_api_message_from_payloadextract_job_idraise_for_statusunwrap_api_response)NetworkErrorRequestTimeoutErrorResponseFormatErrorResultParseErrorz"https://paddleocr.aistudio-app.comz/api/v2/ocr/jobsresponsereturnc                 x    d| j         cxk    rdk     rn nd S t          | j         t          |                      d S )N   i,  )status_coder	   _extract_api_messager   s    [/var/www/html/banglarbhumi/venv/lib/python3.11/site-packages/paddleocr/_api_client/_http.py_raise_for_responser   &   sN    
h"((((S(((((X)+?+I+IJJJJJ    c                     	 |                                  }n# t          $ r
 | j        cY S w xY wt          |t                    rt          |          }|r|S | j        S N)json
ValueErrortext
isinstancedictr   )r   payloadmsgs      r   r   r   ,   ss    --//   }'4   .w77 	J=s    ++c                     	 |                                  }n%# t          $ r}t          d|           |d }~ww xY wt          |t                    st          d          |S )Nz!Response body is not valid JSON: z$Response body must be a JSON object.)r   r   r   r   r   )r   r    es      r   _response_jsonr$   8   s{    R--// R R R!"Ia"I"IJJPQQRgt$$ J!"HIIINs    
949c                 J    t          |           }t          || j                  S r   )r$   r
   r   )r   r    s     r   _response_datar&   B   s"    X&&Gw(<===r   c                 :    t          t          |                     S r   )r   r&   r   s    r   _job_id_from_responser(   G   s    .22333r   c                   $   e Zd Z	 ddedededee         fdZedefd            Z	 	 dd	ed
ede	dee         dee         defdZ
	 	 dd	edede	dee         dee         defdZdedeeef         fdZdedeeef         fdZdedefdZd ZdS )
HTTPClientNtokenbase_urltimeoutclient_platformc                     || _         |                    d          | _        | j         t           | _        || _        t          j                    | _        d| | j        j	        d<   |r|| j        j	        d<   d S d S )N/zBearer AuthorizationzClient-Platform)
_tokenrstrip	_base_urlAPI_PATH	_jobs_url_timeoutrequestsSession_sessionheaders)selfr+   r,   r-   r.   s        r   __init__zHTTPClient.__init__L   s     !-- N6H66 (**1B51B1Bo. 	G7FDM!"3444	G 	Gr   r   c                     | j         S r   )r7   r<   s    r   r-   zHTTPClient.timeout\   s
    }r   modelfile_urloptional_payloadpage_rangesbatch_idc                 V   |||d}|||d<   |||d<   	 | j                             | j        || j                  }nO# t          j        $ r}t          d|           |d }~wt          j        $ r}t          d|           |d }~ww xY wt          |           t          |          S )N)fileUrlr@   optionalPayload
pageRangesbatchId)r   r-   Request timed out: Connection failed: )r:   postr6   r7   r8   Timeoutr   ConnectionErrorr   r   r(   )	r<   r@   rA   rB   rC   rD   bodyrespr#   s	            r   
submit_urlzHTTPClient.submit_url`   s      /
 

 "!,D&DO		A=%% &  DD
  	H 	H 	H%&?A&?&?@@aG' 	A 	A 	A8Q8899q@	AD!!!$T***s!   '> B
A  B
2BB
	file_pathc                 *   t           j                            |          st          |          |t	          j        |          d}|||d<   |||d<   	 t          |d          5 }| j                            | j	        |d|i| j
                  }d d d            n# 1 swxY w Y   nO# t          j        $ r}	t          d|	           |	d }	~	wt          j        $ r}	t          d|	           |	d }	~	ww xY wt!          |           t#          |          S )	N)r@   rG   rH   rI   rbfile)datafilesr-   rJ   rK   )ospathexistsFileNotFoundErrorr   dumpsopenr:   rL   r6   r7   r8   rM   r   rN   r   r   r(   )
r<   r@   rR   rB   rC   rD   rV   frP   r#   s
             r   submit_filezHTTPClient.submit_file~   s    w~~i(( 	/#I...#z*:;;
 
 "!,D&DO	Ai&& !}))N!1+ M	 *                  	H 	H 	H%&?A&?&?@@aG' 	A 	A 	A8Q8899q@	AD!!!$T***sH   B( %+BB( B  B( #B $B( (C47C

C4C//C4job_idc                 6   	 | j                             | j         d| | j                  }nO# t          j        $ r}t          d|           |d }~wt          j        $ r}t          d|           |d }~ww xY wt          |           t          |          S )Nr0   r-   rJ   rK   r:   getr6   r7   r8   rM   r   rN   r   r   r&   )r<   r`   rP   r#   s       r   get_job_statuszHTTPClient.get_job_status   s    	A=$$>,,F,, %  DD  	H 	H 	H%&?A&?&?@@aG' 	A 	A 	A8Q8899q@	AD!!!d###    +. A:AA:"A55A:c                 6   	 | j                             | j         d| | j                  }nO# t          j        $ r}t          d|           |d }~wt          j        $ r}t          d|           |d }~ww xY wt          |           t          |          S )Nz/batch/rb   rJ   rK   rc   )r<   rD   rP   r#   s       r   get_batch_statuszHTTPClient.get_batch_status   s    	A=$$>44(44 %  DD  	H 	H 	H%&?A&?&?@@aG' 	A 	A 	A8Q8899q@	AD!!!d###rf   urlc                 <   	 t          j        || j                  }nO# t           j        $ r}t	          d|           |d }~wt           j        $ r}t          d|           |d }~ww xY w	 |                                 |j        	                                
                    d          }g }|D ]?}|	                                }|r'|                    t          j        |                     @|S # t          j        $ r}t          d|           |d }~ww xY w)Nrb   rJ   rK   
z Malformed JSONL result payload: )r8   rd   r7   rM   r   rN   r   r	   r   stripsplitappendr   loadsJSONDecodeErrorr   )r<   ri   rP   r#   linesresultslines          r   fetch_jsonlzHTTPClient.fetch_jsonl   sV   	A<T];;;DD 	H 	H 	H%&?A&?&?@@aG' 	A 	A 	A8Q8899q@	A
	R!!###IOO%%++D11EG 5 5zz|| 5NN4:d#3#3444N# 	R 	R 	R"#Ia#I#IJJPQQ	Rs9    A*A  A*A%%A*.BC4 4DDDc                 8    | j                                          d S r   )r:   closer?   s    r   rv   zHTTPClient.close   s    r   r   )NN)__name__
__module____qualname__strfloatr   r=   propertyr-   r   rQ   r_   r   r   re   rh   listrt   rv    r   r   r*   r*   K   s        *.G GG G 	G
 "#G G G G      X &*"&+ ++ + 	+
 c]+ 3-+ 
+ + + +F &*"&+ ++ + 	+
 c]+ 3-+ 
+ + + +B$S $T#s(^ $ $ $ $$ $c3h $ $ $ $Rs Rt R R R R(    r   r*   )r   rX   typingr   r   r   r8   _corer   r   r	   r
   errorsr   r   r   r   DEFAULT_BASE_URLr5   Responser   rz   r   r$   r&   r(   r*   r~   r   r   <module>r      s    				 & & & & & & & & & &                        8 K("3 K K K K K	8#4 	 	 	 	 	X. 4S>    >X. >4S> > > > >
4H$5 4# 4 4 4 4C C C C C C C C C Cr   