
    9i                         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Qr " S S\	5      r
S rS rS rS rS	 rSS
 jrSS jr SS jrg)    N)downloadextractdownload_and_extractc                   :   ^  \ rS rSrSrSU 4S jjrSS jrSrU =r$ )_ProgressPrinter   ProgressPrinterc                 <   > [         TU ]  5         SU l        Xl        g )Nr   )super__init__
_last_time_flush_intvl)selfflush_interval	__class__s     V/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/paddlex/utils/download.pyr   _ProgressPrinter.__init__   s    *    c                 @   U(       a  US-  nSU l         [        R                  " 5       U R                   -
  U R                  :  a[  [        R                  R                  SU 35        [        R                  " 5       U l         [        R                  R                  5         gg)print
r   N)r   timer   sysstderrwriteflush)r   str_ends      r   r   _ProgressPrinter.print$   sl    DLDDO99;(D,=,==JJr$[)"iikDOJJ >r   )r   r   )g?)F)	__name__
__module____qualname____firstlineno____doc__r   r   __static_attributes____classcell__)r   s   @r   r   r      s    +
 r   r   c                    U(       a  [        SU  S3[        R                  S9  [        R                  " U SSS9 nUR                  5         UR                  R	                  S5      nUc8  [        US5       n[        R                  " UR                  U5        S S S 5        GO[        US5       nS	n[        U5      nU(       aC  [        5       n[        S
[        R                  R                  U5       S3[        R                  S9  UR!                  SS9 Hh  nU[#        U5      -  nUR%                  U5        U(       d  M+  [        SU-  U-  5      n	WR                  SSU	-  S S['        SU-  5      U-  S S35        Mj     S S S 5        U(       a  WR                  SSS SSS S3SS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       NH= f! , (       d  f       g = f)NzConnecting to z ...fileT   )streamtimeoutzcontent-lengthwbr   zDownloading i   )
chunk_size2   [=<50s] d   .2f%2==================================================r   )r   r   r   requestsgetraise_for_statusheadersopenshutilcopyfileobjrawintr   ospathbasenameiter_contentlenr   float)
url	save_pathprint_progressrtotal_lengthfdlprinterdatadones
             r   	_downloadrS   /   s   se4(szz:	c$	3q	yy}}%56i&!""155!, '& i&!"<0!.0G&rww'7'7	'B&C4H ZZ NNdN;D#d)OBGGDM%~"27\#9:d
405r?\3QRU2VVWX < '" (43s)1=4H7 
4	3 '& '& 
4	3sC   ;G5"F1G-BG?AG (G1
F?	;G
G	G
G!c              #      #    [         R                  " U S5       nUR                  5       n[        U5      n[	        U5       H  u  pVUR                  Xa5        XE4v   M     SSS5        g! , (       d  f       g= f7f)zextract zip filerL   N)zipfileZipFilenamelistrG   	enumerater   )	file_pathextd_dirrN   	file_list	total_numindexr*   s          r   _extract_zip_filer^   Q   sZ     	C	(AJJL		N	$Y/KEIId%"" 0 
)	(	(s   A:AA) 	A:)
A73A:c              #     #     [         R                  " U S5       nUR                  5       n[        U5      n[	        U5       H  u  pV UR                  Xa5        XE4v   M     SSS5        g! [         a    [        SU S3[        R                  S9   N:f = f! , (       d  f       g= f! [         a%  n[        SU 3[        R                  S9   SnAgSnAff = f7f)zextract tar filezr:*zFile z not found in the archive.r)   NzAn error occurred: )tarfiler>   getnamesrG   rX   r   KeyErrorr   r   r   	Exception)rY   rZ   rN   r[   r\   r]   r*   es           r   _extract_tar_filere   [   s     :\\)U+q

III(3UIId-  &&  4 ,+   UE$'ABTU ,+  :#A3'cjj9:su   CB( ,BA+	B"B( *C+&BBBB
B%!B( $C%B( (
C2CCCCc           
      6   U(       aB  [        5       n[        S[        R                  R	                  U 5       3[
        R                  S9  [        R                  " U 5      (       a  [        nO-[        R                  " U 5      (       a  [        nO[        S5      eU" X5       HT  u  pVU(       d  M  [        S[        U5      -  U-  5      nWR                  SSU-  S S[        S	U-  5      U-  S
 S35        MV     U(       a  WR                  SSS SS	S
 S3SS9  gg)r   zExtracting r)   zUnsupported file format.r0   r1   r2   r3   r4   r5   r6   r7   r8   Tr9   N)r   r   rC   rD   rE   r   r   rU   
is_zipfiler^   r`   
is_tarfilere   RuntimeErrorrB   rH   )rY   rZ   rK   rP   handlerr\   r]   rR   s           r   _extractrk   k   s    "$BGG,,Y789

K)$$#			I	&	&#566#I8	>rE%L(945DMMAcDj.bsU{1Ci1OPS0TTUVW 9 (43s)154@ r   c                     [         R                  R                  U 5      (       aR  [         R                  R                  U 5      (       a  [        R
                  " U 5        g[         R                  " U 5        gg)removeN)rC   rD   existsisdirr?   rmtreerm   )rD   s    r   _remove_if_existsrq      sD    	ww~~d77==MM$IIdO	 r   c                     [         R                  " [         R                  R                  U5      SS9  U(       a  [	        U5        [         R                  R                  U5      (       d  [        XUS9  gg)r   Texist_okrK   N)rC   makedirsrD   dirnamerq   rn   rS   )rI   rJ   rK   	overwrites       r   r   r      sJ    KK	*T:)$77>>)$$#@ %r   c                     [        XUS9$ )r   ru   )rk   )rY   rZ   rK   s      r   r   r      s    IGGr   c                    [         R                  " USS9  [         R                  R                  X5      nU(       a  [	        U5        [         R                  R                  U5      (       Gd  [        R                  " 5        n[         R                  R                  XpR                  S5      S   5      n[         R                  R                  U5      S   n	[        XUS9  [         R                  R                  US5      n
[        XUS9  U(       a  [         R                  " U
5      n[        U5      S:X  a  US   nOUn[         R                  R                  X5      n[         R                  R                  U5      (       d  [        e[         R                  R                  X5      n[         R                  R                  U5      (       a  [         R"                  " XSS	9  O[         R$                  " X5        UnO[         R"                  " X5        U	n[         R                  R                  U5      (       a$  [         R                  R'                  X5      (       d  [         R(                  " X5        S
S
S
5        g
g
! , (       d  f       g
= f)zdownload and extractTrs   /r   ru   r      )symlinksN)rC   rv   rD   joinrq   rn   tempfileTemporaryDirectorysplitsplitextrS   rk   listdirrG   FileNotFoundErrorro   r?   copytreecopyfilesamefilemove)rI   save_dirdst_namerK   rx   no_interm_dirdst_pathtdarc_file_pathrZ   tmp_extd_dir
file_names	file_namespdp	extd_files                   r   r   r      s    KK4(ww||H/H(#77>>(##((*bGGLLYYs^B-?@Mww''6q9HcH77<<I6L]PZZ5
z?a' *1I (IWW\\,:ww~~b))++WW\\(677==$$OOBT:OOB+	7$	77>>(++2773C3C4 4 I09 +* $**s   G-I88
J)TF)T)TFT)rC   r?   r   r`   r   r   rU   r:   __all__objectr   rS   r^   re   rk   rq   r   r   r    r   r   <module>r      sd    
  
     
9v &ID#: A*AH RV(1r   