U
    Òâ~cF  ã                   @   s\   d dl Z d dlZd dlZd dlZd dlmZ d dlmZ dd„ Zdd„ Zdd	„ Z	d
d„ Z
dS )é    N)Útqdm)Ú
get_loggerc           	   	   C   s¢   t ƒ }tj| dd}|jdkrŠt|j dd¡ƒ}d}t|ddd}t|d	ƒ.}| |¡D ]}| 	t
|ƒ¡ | |¡ qXW 5 Q R X | ¡  n| d
¡ t d¡ d S )NT)ÚstreaméÈ   zcontent-lengthé   i   ZiB)ÚtotalÚunitÚ
unit_scaleÚwbz-Something went wrong while downloading modelsr   )r   ÚrequestsÚgetÚstatus_codeÚintÚheadersr   ÚopenÚiter_contentÚupdateÚlenÚwriteÚcloseÚerrorÚsysÚexit)	ÚurlÚ	save_pathÚloggerÚresponseZtotal_size_in_bytesÚ
block_sizeZprogress_barÚfileÚdata© r    õW   /Users/zhoujun20/Desktop/å·¥ä½œç›¸å…³/ä¸€è‡´æ€§/è®­ç»ƒ/PaddleOCR/ppocr/utils/network.pyÚdownload_with_progressbar   s"    
  ÿ

r"   c           
      C   s"  dddg}t j t j | d¡¡r8t j t j | d¡¡s| d¡sJtdƒ‚t j | | d¡d	 ¡}td
 ||¡ƒ t j	| dd t
||ƒ t |d¡x}| ¡ D ]h}d }|D ]}|j |¡r¬d| }q¬|d krÐq | |¡}tt j | |¡dƒ}	|	 | ¡ ¡ W 5 Q R X q W 5 Q R X t  |¡ d S )Nz
.pdiparamsz.pdiparams.infoz.pdmodelzinference.pdiparamszinference.pdmodelz.tarz$Only supports tar compressed packageú/éÿÿÿÿzdownload {} to {}T)Úexist_okÚrÚ	inferencer
   )ÚosÚpathÚexistsÚjoinÚendswithÚAssertionErrorÚsplitÚprintÚformatÚmakedirsr"   Útarfiler   Ú
getmembersÚnameÚextractfiler   ÚreadÚremove)
Zmodel_storage_directoryr   Ztar_file_name_listÚtmp_pathZtarObjÚmemberÚfilenameZtar_file_namer   Úfr    r    r!   Úmaybe_download*   s:    
ÿÿþ


þ$r<   c                 C   s   | d k	o|   d¡S )NÚhttp)Ú
startswith)Úsr    r    r!   Úis_linkF   s    r@   c                 C   sP   |}| d kst | ƒrHt | ƒr | }| d¡d d d… }|} tj | |¡} | |fS )Nr#   r$   éüÿÿÿ)r@   r.   r(   r)   r+   )Ú	model_dirZdefault_model_dirZdefault_urlr   Ú	file_namer    r    r!   Úconfirm_model_dir_urlJ   s    rD   )r(   r   r2   r   r   Úppocr.utils.loggingr   r"   r<   r@   rD   r    r    r    r!   Ú<module>   s   