
    9im!                     x   % S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKJ	r	  S SK
JrJrJrJrJrJrJrJr  S SKJrJr  S SKrS SKrS SKrS SKJr  S SK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5      (       a  S SK)r)\$" S5      (       a  S SK*r*\$" S5      (       a  S SK+r+\$" S5      (       a  S SK,r-\$" S5      (       a  S SK.r./ SQr/\S   r0\ \1S'   \" S5      r2\" S5      r3S\44S jr5S\4S\64S jr7S\4S\\0   4S jr8\#" S5      S\4S\\4   4S j5       r9\#" S5      S\:S\Rv                  4S j5       r<S\:S\R8                  4S jr=SBS \R8                  S!\4S\:4S" jjr>\#" S5      SCS \Rv                  S#\4S\:4S$ jj5       r?S\:S\R                  4S% jrAS&\R                  S\:4S' jrBS\:S\44S( jrC\R                  " 5       rE\#" SS5       SDS)\:S*\\F   S\\\Rv                     \'4   4S+ jj5       rG\S,S-.S.\:S/\S0   S*\\F   S\\\Rv                     \&4   4S1 jj5       rH\S,S-.S.\:S/\S2   S*\\F   S\\\Rv                     \'4   4S3 jj5       rH\S,S-.S.\:S/\S4   S*\\F   S\\\\Rv                     \&4   \\\Rv                     \'4   4   4S5 jj5       rHSS-.S.\:S/\S4   S*\\F   S\\\\Rv                     \&4   \\\Rv                     \'4   4   4S6 jjrHS \Rv                  S\&4S7 jrIS.\:S8\4S\44S9 jrJS\4S\:4S: jrK\#" SS5      S\4S;S<S\:4S= j5       rLS>\\2\34   S?\2R                  S@\2R                  S\\3   4SA jrOg)E    N)partial)	AwaitableCallableListOptionalTupleTypeVarUnionoverload)parse_qsurlparse)Image)Literal	ParamSpec	TypeAliasassert_never   )function_requires_depsis_dep_available   )	ImageInfoPDFInfoPDFPageInfoaiohttpzopencv-contrib-pythonfiletype	pypdfium2yarl)FileTypegenerate_log_idis_urlinfer_file_typeinfer_file_extimage_bytes_to_arrayimage_bytes_to_imageimage_to_bytesimage_array_to_bytescsv_bytes_to_data_framedata_frame_to_bytesbase64_encoderead_pdffile_to_imagesget_image_infowrite_to_temp_fileget_raw_bytesget_raw_bytes_async
call_async)IMAGEPDFVIDEOAUDIOr   PRreturnc                  >    [        [        R                  " 5       5      $ N)struuiduuid4     e/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/paddlex/inference/serving/infra/utils.pyr   r   K   s    tzz|r>   sc                     U R                  S5      (       d  U R                  S5      (       d  g[        U 5      n[        UR                  UR                  /5      =(       a    UR                  S;   $ )Nzhttp://zhttps://F)httphttps)
startswithr   allschemenetloc)r@   results     r?   r    r    V   sR    LL##q||J'?'?a[Fv}}-.U6==DU3UUr>   urlc                    [        U 5      nUR                  R                  S5      S   n[        R                  " U5      S   nUc  [
        R                  " SUR                  5      S LnU(       a  UR                  (       ay  [        UR                  5      nSU;   a^  [        US   5      S:X  aL  [
        R                  " SUS   S   5      nU(       a(  [        R                  " UR                  S5      5      S   nUc  g UR                  S5      (       a  g	US
:X  a  gUR                  S5      (       a  gUR                  S5      (       a  gg )N/r   z\w+\.bcebos\.comresponseContentDispositionr   zattachment;filename=(.*)zimage/r1   zapplication/pdfr2   zvideo/r3   zaudio/r4   )r   pathsplit	mimetypes
guess_typere	fullmatchrG   queryr   lenmatchgrouprD   )rI   	url_partsfilename	file_type
is_bos_urlparamsmatch_s          r?   r!   r!   ^   s%   I~~##C(,H$$X.q1I \\"5y7G7GHPTT
)//ioo.F,6;<=B/8T1UVW1X  ) 4 4V\\!_ Ea HIH%%	'	'			h	'	'			h	'	'r>   filec                 8   [        U 5      (       a\  [        U 5      nUR                  R                  S5      S   n[        R
                  " U5      S   nUc  g [        R                  " U5      $ [        R                  " U 5      nS[        R                  " U5      -   $ )NrK   rL   r   .)
r    r   rN   rO   rP   rQ   guess_extensionbase64	b64decoder   )r^   rX   rY   	mime_typebytes_s        r?   r"   r"      s    d||TN	>>'',R0((215	((33!!$'X--f555r>   datac                     [         R                  " [        R                  " U [        R                  5      [         R
                  5      $ r9   )cv2imdecodenp
frombufferuint8IMREAD_COLORrf   s    r?   r#   r#      s(    <<dBHH5s7G7GHHr>   c                 V    [         R                  " [        R                  " U 5      5      $ r9   )r   openioBytesIOrn   s    r?   r$   r$      s    ::bjj&''r>   imageformatc                     [         R                  " 5        nU R                  X!S9  UR                  5       nS S S 5        U$ ! , (       d  f       W$ = f)N)rt   )rq   rr   savegetvalue)rs   rt   f	img_bytess       r?   r%   r%      sC    	

1
$JJL	 
  
 s    A  
Aextc                 T    [         R                  " X5      S   n U R                  5       $ )Nr   )rh   imencodetobytes)rs   rz   s     r?   r&   r&      s!    LL$Q'E==?r>   c                     [         R                  " U R                  S5      5       n[        R                  " U5      nS S S 5        U$ ! , (       d  f       W$ = fNzutf-8)rq   StringIOdecodepdread_csv)rf   rx   dfs      r?   r'   r'      s>    	T[[)	*a[[^ 
+I 
+	*Is   A
Ar   c                 @    U R                  5       R                  S5      $ r   )to_csvencode)r   s    r?   r(   r(      s    99;g&&r>   c                 L    [         R                  " U 5      R                  S5      $ )Nascii)rb   	b64encoder   rn   s    r?   r)   r)      s    D!((11r>   re   max_num_imgsc                    / n/ n[            [        R                  " U 5      n U H~  nUb  [        U5      U:  a    OkSnSnUR	                  XgS9R                  5       nUR                  U5        [        UR                  S   UR                  S   S9n	UR                  U	5        M     UR                  5          S S S 5        [        [        U5      US9n
X*4$ ! UR                  5         f = f! , (       d  f       N9= f)Ng       @r   )scalerotationr   widthheight)numPagespages)_lockpdfiumPdfDocumentrU   renderto_numpyappendr   shapecloser   )re   r   imagespage_info_listdocpagezoomdegrs   	page_infopdf_infos              r?   r*   r*      s      "F(*N	  (	+F|0K$=FFHe$'++a. ;;q>	 %%i0  IIK# 
$ ^$H  IIK# 
s#   C+BC'C+C((C++
C9.r   
file_bytesrZ   r1   c                    g r9   r=   r   rZ   r   s      r?   r+   r+      s     *-r>   r2   c                    g r9   r=   r   s      r?   r+   r+      s     (+r>   )r1   r2   c                    g r9   r=   r   s      r?   r+   r+      s	     SVr>   c                    US:X  a  [        U 5      /n[        US   5      nX44$ US:X  a  [        XS9u  p4X44$ [        U5        WW4$ )Nr1   r   r2   r   )r#   r,   r*   r   )r   rZ   r   r   	data_infos        r?   r+   r+      si     G&z23"6!9-	
 	 
e	$ZK  	Y9r>   c                 J    [        U R                  S   U R                  S   S9$ )Nr   r   r   )r   r   )rs   s    r?   r,   r,     s    5;;q>%++a.AAr>   suffixc                     [         R                  " SUSS9 nUR                  U 5        UR                  sS S S 5        $ ! , (       d  f       g = f)NwbF)r   delete)tempfileNamedTemporaryFilewritename)r   r   rx   s      r?   r-   r-     s6    		$	$T&	G1	
vv 
H	G	Gs	   >
Ac                     [        U 5      (       a1  [        R                  " U SS9nUR                  5         UR                  $ [
        R                  " U 5      $ )N   )timeout)r    requestsgetraise_for_statuscontentrb   rc   )r^   resps     r?   r.   r.     sB    d||||D!,||%%r>   sessionzaiohttp.ClientSessionc                 B  #    [        U 5      (       aV  UR                  [        R                  " U SS95       IS h  vN nUR	                  5       I S h  vN sS S S 5      IS h  vN   $ [
        R                  " U 5      $  NC N- N! , IS h  vN  (       d  f       g = f7f)NT)encoded)r    r   r   URLreadrb   rc   )r^   r   r   s      r?   r/   r/     sj     d||;;txxd;<<$ =<< %% =$ =<<<sV   9BA?BBBBB#B$BBBBBBBfuncargskwargsc                f    [         R                  " 5       R                  S [        U /UQ70 UD65      $ r9   )asyncioget_running_looprun_in_executorr   )r   r   r   s      r?   r0   r0     s4     ##%55gd,T,V, r>   )JPEG)z.jpgr9   )Pr   rb   rq   rP   rR   r   	threadingr;   	functoolsr   typingr   r   r   r   r   r	   r
   r   urllib.parser   r   numpyrj   pandasr   r   PILr   typing_extensionsr   r   r   r   
utils.depsr   r   modelsr   r   r   r   rh   r   r   r   r   __all__r   __annotations__r5   r6   r:   r   boolr    r!   r"   bytesndarrayr#   r$   r%   r&   	DataFramer'   r(   r)   Lockr   intr*   r+   r,   r-   r.   r/   r   r   r0   r=   r>   r?   <module>r      s     	  	     W W W +     I I C 3 3I+,,JK  F, >?) ?cNCL Vc Vd V! !(!3 !H 
#
6 
6# 
6 $
6 /0Iu I I 1I(u ( (%++ s   /0

  %  1
% BLL 'BLL 'U '2 2# 2 	 %<=15!)#
4

W$% >< 

 #&	--w- 3-	-
 4

Y&'- 
- 

 #&	++u~+ 3-	+
 4

W$%+ 
+ 

 #&	VV~&V 3-	V
 5bjj!9,-uT"**5Ew5N/OOPV 
V #'	~& 3-	
 5bjj!9,-uT"**5Ew5N/OOP B"** B B5 # # & & & 	6*&C &2I &e & +&
1a4.$%FF67hhq\r>   