
    ?pj                        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	  S SK
JrJr  S SKrSSKJrJrJr  SSKJrJr  SSS	S
.S\S\S\S\\   S\S\4S jjrSS	S.S\S\S\S\S\\   4
S jjrSS	S.S\S\S\S\S\\   4
S jjrS\S\S\\   S\4S jrS\S\4S jrS\S\SS4S jrS\S\S\SS4S jrS\\\4   S\\	\\4      4S jr S\S\4S jr!S\S\4S  jr"S!\SS4S" jr#g)#    N)Path)DictIterableListOptionalTuple)unquoteurlparse   )InvalidRequestErrorNetworkErrorRequestTimeoutError)DocParsingResult	OCRResultFg     r@)	overwritefilenametimeoutresource_urldestinationr   r   r   returnc                   U (       d  [        S5      eU(       d  [        S5      e[        U 5      nUR                  S;  d  UR                  (       d  [        SU  35      e[	        UR
                  X5      n[        Xb5         [        R                  " XS9n UR                  5         [        XgR                   U5        [#        U5      $ ! [        R                   a  n[        SU 35      UeS nAf[        R                   a  n[        SU 35      UeS nAff = f! [        R                   a  n[        SU 35      UeS nAff = f)	Nzresource_url is required.zdestination is required.)httphttpszInvalid resource URL: )r   zRequest timed out: zConnection failed: zFailed to download resource: )r   r
   schemenetloc_resolve_destinationpath_require_writable_targetrequestsgetTimeoutr   ConnectionErrorr   raise_for_statusRequestException_atomic_writecontentstr)	r   r   r   r   r   
parsed_urltargetresponsees	            \/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/paddleocr/_api_client/_resources.pysave_resourcer-      s/    !"=>>!"<==,'J 119J9J!$:<."IJJ!*//;IFV/=<<>G!!# &**I6v;  D!$7s";<!C## =0451<=
 $$ G:1#>?QFGs<   C D DC**DDDE ,D;;E r   r   resultc          
      8   U c  [        S5      e[        U5      n/ n[        U R                  5       He  u  pgUR                  (       d  M  SUS-    [        UR                  5       3nUR                  [        UR                  [        XH-  5      UUS95        Mg     U$ )NzOCR result is required.z	ocr-page-r   r.   )	r   _require_existing_directory	enumeratepagesocr_image_url_safe_resource_extensionappendr-   r'   )	r/   r   r   r   dest_dirsaved_pathsindexpager   s	            r,   save_ocr_result_resourcesr;   ?   s     ~!";<<*;7HK .!!uqyk*B4CUCU*V)WX""H'(#		
	 /     c                r   U c  [        S5      e[        U5      n/ nU R                   H  n[        UR                  5       H+  u  pxUR                  [        U[        XG-  5      UUS95        M-     [        UR                  5       H+  u  pxUR                  [        U[        XG-  5      UUS95        M-     M     U$ )Nz$document parsing result is required.r.   )	r   r1   r3   _iter_named_resourcesmarkdown_imagesr6   r-   r'   output_images)	r/   r   r   r   r7   r8   r:   r   r   s	            r,   &save_document_parsing_result_resourcesrA   Y   s     ~!"HII*;7HK&;D<P<P&Q"H +,'#	 'R '<D<N<N&O"H +,'#	 'P & r<   url_pathc                 h   [        U5      nUb  [        U5        X2-  nO;UR                  5       (       a$  UR                  5       (       a  U[	        U 5      -  nOUnUR
                  nUR                  5       (       d  [        [        U5      5      eUR                  5       (       d  [        SU 35      eU$ )Nz(Destination parent must be a directory: )	r   "_validate_result_resource_filenameexistsis_dir_safe_url_basenameparentFileNotFoundErrorr'   r   )rB   r   r   destination_pathr)   rH   s         r,   r   r   z   s     K(*84!,		 	 	"	"'7'>'>'@'@!$6x$@@!]]F==??F,,==??!$LVH"UVVMr<   c                     [        U 5      nUR                  5       (       d  [        U 5      eUR                  5       (       d  [	        SU  35      eU$ )Nz+Destination must be an existing directory: )r   rE   rI   rF   r   )r   r7   s     r,   r1   r1      sO    K H??,,??!9+G
 	
 Or<   r)   c                 Z    U R                  5       (       a  U(       d  [        SU  35      eg g )NDestination already exists: )rE   r   )r)   r   s     r,   r   r      s)    }}y!$@"IJJ  )r<   r&   c                    [         R                  " SU R                   S3[        U R                  5      S9u  p4 [
        R                  " US5       nUR                  U5        S S S 5        U(       a  [
        R                  " X@5        O-[
        R                  " X@5        [
        R                  " U5         [
        R                  R                  U5      (       a  [
        R                  " U5        g g ! , (       d  f       N= f! [         a  n[        SU  35      UeS nAff = f! [
        R                  R                  U5      (       a  [
        R                  " U5        f f = f)N.z.tmp-)prefixdirwbrM   )tempfilemkstempnamer'   rH   osfdopenwritereplacelinkremoveFileExistsErrorr   r   rE   )r)   r&   r   fd	temp_path	temp_filer+   s          r,   r%   r%      s    $$6;;-u%MB!YYr4 IOOG$ !JJy)GGI&IIi  77>>)$$IIi  % !   R!$@"IJPQQR 77>>)$$IIi  %sM   D C2#%D D$ 	,D 5D$ 2
D <D 
D!DD!!D$ $=E!	resourcesc              #   j   #    [        U 5       H   nX   nU(       d  M  [        U5        X4v   M"     g 7f)N)sortedrD   )r`   keyr   s      r,   r>   r>      s2     i  ~*3/ !s   13c                 t    [        [        U 5      5      R                  nU(       a  US;   a  g[        U5        U$ )NrO   z..resource)r   r	   rU   rD   )rB   rU   s     r,   rG   rG      s1    !"''D4;&&t,Kr<   c                     [        U 5      n[        [        UR                  5      5      R                  nU(       d  g [        SU 35        U$ ! [         a     gf = f)N rf   )r
   r   r	   r   suffixrD   r   )r   parsedri   s      r,   r5   r5      sZ    l#F'&++&'..F*XfX+>? M  s   A 
AArU   c                     U (       d  [        S5      e[        U 5      nUR                  U :w  d  SU ;   d  SU ;   d  U S;   a  [        SU  35      eg )Nz$Resource filename must not be empty./\re   zUnsafe resource filename: )r   r   rU   )rU   r   s     r,   rD   rD      sR    !"HII:DyyDC4K44<4;;N!$>tf"EFF <Or<   )$rV   rS   pathlibr   typingr   r   r   r   r   urllib.parser	   r
   r   errorsr   r   r   resultsr   r   r'   boolfloatr-   r;   rA   r   r1   r   bytesr%   r>   rG   r5   rD    r<   r,   <module>rw      s   
   8 8 *  J J 0 "!!! 	!
 sm! ! 	!P  	
  
#Y<  	
  
#YB #/7}	(S T KT Kd Kt K
!$ ! !4 !D !( T#s(^  sCx8Q    	3 	3 	GS GT Gr<   