Ë
    –\;jí-  ã                   ó<  — d dl Z d dlZd dlmZ d dlZd dlZd dlZd dlZd dl	Z	d dl
Z
	 d dlmZ d dlZ ej                  e«      ZdgZ ej"                  d«      ZdZd„ Zdd	„Zd
„ Zd„ Z	 dd„Zd„ ZdeiZdd„Zdd„Zd„ Zd„ Zdd„Zd„ Z d„ Z!y#   G d„ d«      ZY ŒmxY w)é    N)Útqdmc                   ó&   — e Zd Zdd„Zd„ Zd„ Zd„ Zy)r   Nc                 ó    — || _         d| _        y )Nr   )ÚtotalÚn)Úselfr   s     ú^G:\00. PROJECTS\API\Inventory\templateJSON\kerjaOCR\Lib\site-packages\paddle/utils/download.pyÚ__init__ztqdm.__init__   s   € ØˆDŒJØˆD�Fó    c                 ón  — | xj                   |z  c_         | j                  €/t        j                  j	                  d| j                   d›d�«       nGt        j                  j	                  dd| j                   z  t        | j                  «      z  d›d�«       t        j                  j                  «        y )NÚz.1fz byteséd   Ú%)r   r   ÚsysÚstderrÚwriteÚfloatÚflush)r   r   s     r	   Úupdateztqdm.update#   s~   € Ø�FŠF�a‰K�FØ�z‰zÐ!Ü—
‘
× Ñ  2 d§f¡f¨S \°Ð!8Õ9ä—
‘
× Ñ  2 c¨D¯F©F¡l´U¸4¿:¹:Ó5FÑ&FÀsÐ%KÈ1Ð!MÔNÜ�J‰J×ÑÕr   c                 ó   — | S ©N© )r   s    r	   Ú	__enter__ztqdm.__enter__+   s   € ØˆKr   c                 óB   — t         j                  j                  d«       y )NÚ
)r   r   r   )r   Úexc_typeÚexc_valÚexc_tbs       r	   Ú__exit__ztqdm.__exit__.   s   € Ü�J‰J×Ñ˜TÕ"r   r   )Ú__name__Ú
__module__Ú__qualname__r
   r   r   r   r   r   r	   r   r      s   „ ó	ò	ò	ó	#r   r   Úget_weights_path_from_urlz~/.cache/paddle/hapi/weightsé   c                 óJ   — | j                  d«      xs | j                  d«      S )zR
    Whether path is URL.
    Args:
        path (string): URL string or not.
    zhttp://zhttps://)Ú
startswith)Úpaths    r	   Úis_urlr(   =   s!   € ð �?‰?˜9Ó%ÒD¨¯©¸Ó)DÐDr   c                 ó(   — t        | t        |«      }|S )a:  Get weights path from WEIGHT_HOME, if not exists,
    download it from url.

    Args:
        url (str): download url
        md5sum (str): md5 sum of download package

    Returns:
        str: a local path to save downloaded weights.

    Examples:
        .. code-block:: python

            >>> from paddle.utils.download import get_weights_path_from_url

            >>> resnet18_pretrained_weight_url = 'https://paddle-hapi.bj.bcebos.com/models/resnet18.pdparams'
            >>> local_weight_path = get_weights_path_from_url(resnet18_pretrained_weight_url)

    )Úget_path_from_urlÚWEIGHTS_HOME)ÚurlÚmd5sumr'   s      r	   r#   r#   F   s   € ô( ˜S¤,°Ó7€DØ€Kr   c                 ób   — t        j                  | «      d   }|}t        j                  ||«      S )Néÿÿÿÿ)ÚospÚsplitÚjoin)r,   Úroot_dirÚfnameÚfpaths       r	   Ú	_map_pathr6   ^   s*   € ä�I‰I�c‹N˜2Ñ€EØ€EÜ�8‰8�H˜eÓ$Ð$r   c                 ó  — | j                  «        t        «       }t        «       }| D ]=  }|j                  d«      d   }||v rŒ|j                  |«       |j                  |«       Œ? t        j                  d|› �«       |S )NÚ:r   zunique_endpoints )ÚsortÚsetr1   ÚaddÚloggerÚinfo)Útrainer_endpointsÚipsÚunique_endpointsÚendpointÚips        r	   Ú_get_unique_endpointsrC   e   s{   € à×ÑÔÜ
‹%€CÜ“uÐÛ%ˆØ�^‰^˜CÓ  Ñ#ˆØ�‰9ØØ�‰�ŒØ×Ñ˜XÕ&ð &ô ‡K�KÐ#Ð$4Ð#5Ð6Ô7ØÐr   Úgetc                 óŠ  — ddl m} t        | «      sJ d| › d�«       ‚t        | |«      }t	         |«       j
                  dd «      }t        j                  |«      r'|r%t        ||«      rt        j                  d|› �«       nw |«       j                  |v rt        | |||¬«      }nTt        j                  j                  |«      s5t        j                   d«       t        j                  j                  |«      sŒ5 |«       j                  |v r7|r5t#        j$                  |«      st'        j(                  |«      rt+        |«      }|S )	a¡  Download from given url to root_dir.
    if file or directory specified by url is exists under
    root_dir, return the path directly, otherwise download
    from url and decompress it, return the path.

    Args:
        url (str): download url
        root_dir (str): root dir for downloading, it should be
                        WEIGHTS_HOME or DATASET_HOME
        md5sum (str): md5 sum of download package
        decompress (bool): decompress zip or tar file. Default is `True`
        method (str): which download method to use. Support `wget` and `get`. Default is `get`.

    Returns:
        str: a local path to save downloaded models & weights & datasets.
    r   )ÚParallelEnvzdownloading from z
 not a urlNzFound )Úmethodé   )Úpaddle.distributedrF   r(   r6   rC   r>   r0   ÚexistsÚ	_md5checkr<   r=   Úcurrent_endpointÚ	_downloadÚosr'   ÚtimeÚsleepÚtarfileÚ
is_tarfileÚzipfileÚ
is_zipfileÚ_decompress)	r,   r3   r-   Úcheck_existÚ
decompressrG   rF   Úfullpathr@   s	            r	   r*   r*   t   s   € õ( /ä�#Œ;Ð;Ð+¨C¨5°
Ð;Ó;ˆ;ä˜˜hÓ'€Hô -©[«]×-LÑ-LÉQÐ-OÓPÐÜ
‡z�z�(Ô¡´	¸(ÀFÔ0KÜ�‰�f˜X˜JÐ'Õ(á‹=×)Ñ)Ð-=Ñ=Ü   h°¸vÔF‰Hä—g‘g—n‘n XÔ.Ü—
‘
˜1”ô —g‘g—n‘n XÕ.ñ ƒ}×%Ñ%Ð)9Ñ9ÙÜ×Ñ˜xÔ(¬G×,>Ñ,>¸xÔ,Hä" 8Ó,ˆHà€Or   c                 ó>  — t        j                  |«      }	 t        j                  d| d d¬«      5 }|j                  dk7  rt        d| › d|j                  › d�«      ‚|dz   }|j                  j                  d	«      }t        |d
«      5 }|r_t        t        |«      dz   dz  ¬«      5 }|j                  d¬«      D ]$  }|j                  |«       |j                  d«       Œ& 	 d d d «       n+|j                  d¬«      D ]  }|sŒ|j                  |«       Œ d d d «       t        j                  ||«       |cd d d «       S # 1 sw Y   Œ2xY w# 1 sw Y   Œ6xY w# 1 sw Y   y xY w# t         $ r1}	t"        j%                  d|› d| › dt'        |	«      › �«       Y d }	~	yd }	~	ww xY w)NÚGETT)ÚtimeoutÚfollow_redirectséÈ   zDownloading from z failed with code Ú!Ú_tmpzcontent-lengthÚwbiÿ  i   )r   )Ú
chunk_sizerH   úDownloading ú from z failed with exception F)r0   ÚbasenameÚhttpxÚstreamÚstatus_codeÚRuntimeErrorÚheadersrD   Úopenr   ÚintÚ
iter_bytesr   r   ÚshutilÚmoveÚ	Exceptionr<   r=   Ústr)
r,   Úfullnamer4   ÚreqÚtmp_fullnameÚ
total_sizeÚfÚpbarÚchunkÚes
             r	   Ú_get_downloadry   £   s  € ä�L‰L˜Ó"€EðÜ�\‰\Ø�3 °tõ
àØ�‰ #Ò%Ü"Ø'¨ uÐ,>Ø—‘Ð' qð*óð ð
 $ fÑ,ˆLØŸ™Ÿ™Ð)9Ó:ˆJÜ�l DÔ)¨QÙÜ¤S¨£_°tÑ%;ÀÑ$DÕEÈØ%(§^¡^¸t ^Ö%D˜EØŸG™G EœNØ ŸK™K¨�Nñ &E÷ FÐEð
 "%§¡¸4 Ö!@˜Ú ØŸG™G E�Nð "A÷ *ô �K‰K˜ hÔ/Ø÷-
ñ 
÷ FÐEú÷ *Ð)ú÷
ð 
ûô0 ò Ü�‰Ø˜5˜' ¨ uÐ,CÄCÈÃFÀ8ÐLô	
ô ûð	úsk   —E" °AEÂE
Â&:D>Ã! E
ÄE
ÄEÄ4	E" Ä>EÅE
Å
E	ÅEÅEÅE" ÅE" Å"	FÅ+'FÆFc                 óZ  — |t         v sJ d|› d�«       ‚t        j                  |«      st        j                  |«       t        j
                  | «      d   }t        j                  ||«      }d}t        j                  d|› d| › �«       t        j                  |«      rt        ||«      s�t        j                  d|› d|› �«       |t        k  r|d	z  }nt        d
| › d�«      ‚t        |   | |«      st        j                  d	«       Œt        j                  |«      sŒtt        ||«      sŒ�|S )zù
    Download from url, save to path.

    url (str): download url
    path (str): download to given path
    md5sum (str): md5 sum of download package
    method (str): which download method to use. Support `wget` and `get`. Default is `get`.

    zmake sure `z` implementedr/   r   rb   rc   z	md5check z and rH   zDownload from z failed. Retry limit reached)Ú_download_methodsr0   rJ   rN   Úmakedirsr1   r2   r<   r=   rK   ÚDOWNLOAD_RETRY_LIMITrh   rO   rP   )r,   r'   r-   rG   r4   rq   Ú	retry_cnts          r	   rM   rM   É   s  € ð Ô&Ñ&ÐK¨+°f°X¸]Ð(KÓKÐ&ä�:‰:�dÔÜ
�‰�DÔä�I‰I�c‹N˜2Ñ€EÜ�x‰x˜˜eÓ$€HØ€Iä
‡K�K�,˜u˜g V¨C¨5Ð1Ô2Ü�z‰z˜(Ô#¬	°(¸FÔ(CÜ�‰�i ˜z¨¨v¨hÐ7Ô8ØÔ+Ò+Ø˜‰N‰IäØ   Ð%EÐEóð ô ! Ñ(¨¨hÔ7Ü�J‰J�qŒMØô �z‰z˜(Õ#¬	°(¸FÕ(Cð €Or   c           	      ó^  ‡— |€yt         j                  d| › d�«       t        j                  «       }t	        | d«      5 Št        ˆfd„d«      D ]  }|j                  |«       Œ 	 d d d «       |j                  «       }||k7  r t         j                  d| › d|› d|› d	�«       y
y# 1 sw Y   Œ?xY w)NTzFile z md5 checking...Úrbc                  ó&   •— ‰ j                  d«      S )Ni   )Úread)ru   s   €r	   Ú<lambda>z_md5check.<locals>.<lambda>ô   s   ø€  !§&¡&¨¤,r   r   z md5 check failed, z
(calc) != z(base)F)r<   r=   ÚhashlibÚmd5rj   Úiterr   Ú	hexdigest)rq   r-   r…   rw   Úcalc_md5sumru   s        @r	   rK   rK   í   s©   ø€ Ø€~Øä
‡K�K�%˜�zÐ!1Ð2Ô3Ü
�+‰+‹-€CÜ	ˆh˜Ô	 ÜÓ.°Ö4ˆEØ�J‰J�uÕñ 5÷ 
ð —-‘-“/€Kà�fÒÜ�‰Ø�H�:Ð0°°¸ZØˆh�fðô	
ð Ø÷ 
Ð	ús   ¾&B#Â#B,c                 óØ   — t         j                  d| › d�«       t        j                  | «      rt	        | «      }|S t        j                  | «      rt        | «      }|S t        d| › �«      ‚)z)
    Decompress for zip and tar file
    zDecompressing z...zUnsupport compress file type )	r<   r=   rQ   rR   Ú_uncompress_file_tarrS   rT   Ú_uncompress_file_zipÚ	TypeError)r4   Úuncompressed_paths     r	   rU   rU     st   € ô ‡K�K�.   sÐ+Ô,ô ×Ñ˜%Ô Ü0°Ó7Ðð Ðô 
×	Ñ	˜EÔ	"Ü0°Ó7Ðð Ðô Ð7¸°wÐ?Ó@Ð@r   c                 ó^  — t        j                  | d«      5 }|j                  «       }g }|D ]#  }|j                  |j	                  dd«      «       Œ% t
        j                  j                  | «      }t        |«      r8|d   }t
        j                  j                  ||«      }|j                  |«       �ndt        |«      r”t
        j                  j                  |d   j                  t
        j                  «      «      d   j                  t
        j                  «      d   }t
        j                  j                  ||«      }|j                  |«       nÅt
        j                  j                  | «      d   j                  t
        j                  «      d   }t
        j                  j                  ||«      }t
        j                  j!                  |«      st        j"                  |«       |j                  t
        j                  j                  ||«      «       |cd d d «       S # 1 sw Y   y xY w)NÚrú../Ú r   r/   )rS   ÚZipFileÚnamelistÚappendÚreplacerN   r'   ÚdirnameÚ_is_a_single_filer2   Ú
extractallÚ_is_a_single_dirÚsplitextÚstripÚsepr1   rJ   r|   )ÚfilepathÚfilesÚfile_list_tmpÚ	file_listÚfileÚfile_dirÚrootpathr�   s           r	   r‹   r‹     s�  € Ü	�‰˜ 3Ô	'¨5ØŸ™Ó(ˆØˆ	Û!ˆDØ×Ñ˜TŸ\™\¨%°Ó4Õ5ð "ô —7‘7—?‘? 8Ó,ˆä˜YÔ'Ø  ‘|ˆHÜ "§¡§¡¨X°xÓ @ÐØ×Ñ˜XÖ&ä˜iÔ(ä—w‘w×'Ñ'¨	°!©×(:Ñ(:¼2¿6¹6Ó(BÓCÀAÑF×LÑLÜ—‘óàñˆHô !#§¡§¡¨X°xÓ @Ðà×Ñ˜XÕ&ä—w‘w×'Ñ'¨Ó1°!Ñ4×:Ñ:¼2¿6¹6ÓBÀ2ÑFˆHÜ "§¡§¡¨X°xÓ @ÐÜ—7‘7—>‘>Ð"3Ô4Ü—‘Ð-Ô.Ø×ÑœRŸW™WŸ\™\¨(°HÓ=Ô>à ÷9 
(×	'Ò	'ús   —HH#È#H,c                 ó„  — t        j                  | |«      5 }|j                  «       }g }|D ]6  }|d   dk7  sJ d|› d�«       ‚|j                  |j	                  dd«      «       Œ8 t
        j                  j                  | «      }t        |«      r8|d   }t
        j                  j                  ||«      }|j                  |«       �ndt        |«      r”t
        j                  j                  |d   j                  t
        j                  «      «      d   j                  t
        j                  «      d   }t
        j                  j                  ||«      }|j                  |«       nÅt
        j                  j                  | «      d   j                  t
        j                  «      d   }t
        j                  j                  ||«      }t
        j                  j!                  |«      st        j"                  |«       |j                  t
        j                  j                  ||«      «       |cd d d «       S # 1 sw Y   y xY w)Nr   Ú/zuncompress file path z should not start with /r�   r‘   r/   )rQ   rj   Úgetnamesr”   r•   rN   r'   r–   r—   r2   r˜   r™   rš   r›   rœ   r1   rJ   r|   )	r�   Úmoderž   rŸ   r    r¡   r¢   r£   r�   s	            r	   rŠ   rŠ   6  s´  € Ü	�‰�h Ô	%¨ØŸ™Ó(ˆØˆ	Û!ˆDà�Q‘˜3’ðFà& t fÐ,DÐEóFØà×Ñ˜TŸ\™\¨%°Ó4Õ5ð	 "ô —7‘7—?‘? 8Ó,ˆä˜YÔ'Ø  ‘|ˆHÜ "§¡§¡¨X°xÓ @ÐØ×Ñ˜XÖ&Ü˜iÔ(Ü—w‘w×'Ñ'¨	°!©×(:Ñ(:¼2¿6¹6Ó(BÓCÀAÑF×LÑLÜ—‘óàñˆHô !#§¡§¡¨X°xÓ @ÐØ×Ñ˜XÕ&ä—w‘w×'Ñ'¨Ó1°!Ñ4×:Ñ:¼2¿6¹6ÓBÀ2ÑFˆHÜ "§¡§¡¨X°xÓ @ÐÜ—7‘7—>‘>Ð"3Ô4Ü—‘Ð-Ô.à×ÑœRŸW™WŸ\™\¨(°HÓ=Ô>à ÷; 
&×	%Ò	%ús   —HH6È6H?c                 ól   — t        | «      dk(  r&| d   j                  t        j                  «      dk  ryy)NrH   r   TF)ÚlenÚfindrN   rœ   )r    s    r	   r—   r—   W  s.   € Ü
ˆ9ƒ~˜Ò˜y¨™|×0Ñ0´·±Ó8¸1Ò<ØØr   c                 óœ  — g }| D ]\  }d|v r!|j                  dt        j                  «      }n$d|v r |j                  dt        j                  «      }|j                  |«       Œ^ |d   j	                  t        j                  «      d   }t        dt        |«      «      D ],  }|||   j	                  t        j                  «      d   k7  sŒ, y y)Nr¥   Ú\r   rH   FT)r•   rN   rœ   r”   r1   Úranger©   )r    Únew_file_listÚ	file_pathÚ	file_nameÚis        r	   r™   r™   ]  sº   € Ø€MÛˆ	Ø�)ÑØ!×)Ñ)¨#¬r¯v©vÓ6‰IØ�YÑØ!×)Ñ)¨$´·±Ó7ˆIØ×Ñ˜YÕ'ð ð ˜aÑ ×&Ñ&¤r§v¡vÓ.¨qÑ1€IÜ�1”c˜-Ó(Ö)ˆØ˜ aÑ(×.Ñ.¬r¯v©vÓ6°qÑ9Ó9Ùð *ð r   r   )NTTrD   )NrD   )zr:*)"r„   rN   Úos.pathr'   r0   rm   r   rQ   rO   rS   re   r   ÚloggingÚ	getLoggerr    r<   Ú__all__Ú
expanduserr+   r}   r(   r#   r6   rC   r*   ry   r{   rM   rK   rU   r‹   rŠ   r—   r™   r   r   r	   Ú<module>r·      sÍ   ðó Û 	Ý Û Û 
Û Û Û ã ð#Ýó. à	ˆ×	Ñ	˜8Ó	$€à&Ð
'€àˆs�~‰~Ð<Ó=€àÐ òEóò0%òð  KPó,ò^ ðF ˜MÐ*Ð ó!óHò(ò*!ó@!òBóøðC
#÷#ó #ús   ¨B ÂB