U
    bL                     @   sz   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d dlZdddZ	dddZ
dd
dZdddZdddZdS )    N)Path c                 C   s8   t jd|  ddd}t|r4t|dd S dS )Nz
gsutil du T)shellzutf-8 r   )
subprocesscheck_outputdecodelenevalsplit)urls r   D/home/sahil/Documents/Yolov5-DeepSort/./yolov5/utils/google_utils.pygsutil_getsize   s    r         ?c                 C   s  t | } d|  d| }zzJtd| d	|  d
 tj|t	|  |  rZ|  j|ksbt
|W nj tk
r } zL| jdd td| d|p| d	|  d
 td|p| d|  d W 5 d }~X Y nX W 5 |  r|  j|k r| jdd td| d|  td X d S )NzDownloaded file 'z(' does not exist or size is < min_bytes=T
missing_okzERROR: 
r   zDownloading z to z...z
Re-attempting z	curl -L 'z' -o 'z' --retry 3 -C -)r   existsstatst_sizeunlinkprinttorchhubdownload_url_to_filestrAssertionError	Exceptionossystem)filer   Zurl2	min_bytes	error_msgZ
assert_msger   r   r   safe_download   s    " 2r&   ultralytics/yolov5c                 C   sP  t t|  dd} |  sHt tjt| j}t| 	drvt| dd}|
dd }t||dd	 |S | jjd
d
d z4td| d }dd |d D }|d }W nT   ddddddddg}z"tjdd
tjd 
 d }W n   d}Y nX Y nX ||krHt| d| d| d | d|  d!| d"d# t| S )$N'r   )zhttp:/zhttps:/z:/z://?r   g     j@)r"   r   r#   T)parentsexist_okzhttps://api.github.com/repos/z/releases/latestc                 S   s   g | ]}|d  qS )namer   ).0xr   r   r   
<listcomp>8   s     z$attempt_download.<locals>.<listcomp>assetsZtag_namez
yolov5s.ptz
yolov5m.ptz
yolov5l.ptz
yolov5x.ptzyolov5s6.ptzyolov5m6.ptzyolov5l6.ptzyolov5x6.ptzgit tag)r   stderrzv5.0zhttps://github.com/z/releases/download//z2 missing, try downloading from https://github.com/z
/releases/)r   r#   r$   )r   r   stripreplacer   urllibparseunquoter,   
startswithr   r&   parentmkdirrequestsgetjsonr   r   STDOUTr   )r"   Zrepor,   r   responser0   tagr   r   r   attempt_download'   s>    
   "
rB   !16TiPfZj7htmTyhntwcZyEEAejOUxuT6mtmp.zipc                 C   s0  t   }t|}td}td|  d| ddd |jdd |jdd t d	krZd
nd}td|  d|  tjdrdt	  d|  d| }nd| d|  d}t|}|jdd |dkr|jdd td |S |j
dkrtddd td|  |  tdt   | dd |S )Ncookiez;Downloading https://drive.google.com/uc?export=download&id=z as z... r   )endTr   WindowsNULz	/dev/nullz?curl -c ./cookie -s -L "drive.google.com/uc?export=download&id=z" > z?curl -Lb ./cookie "drive.google.com/uc?export=download&confirm=z&id=z" -o zcurl -s -L -o z) "drive.google.com/uc?export=download&id="r   zDownload error z.zipzunzipping... z	unzip -q zDone (z.1fzs))timer   r   r   platformr!   r    pathr   	get_tokensuffix)idr"   trE   outr   rr   r   r   gdrive_downloadL   s.    
rS   ./cookiec              
   C   sF   t | 4}|D ](}d|kr| d   W  5 Q R  S qW 5 Q R X dS )Ndownloadr2   r   )openr   )rE   fliner   r   r   rM   o   s
    
(rM   )r   )Nr   r   )r'   )rC   rD   )rT   )r    rK   r   rJ   r6   pathlibr   r<   r   r   r&   rB   rS   rM   r   r   r   r   <module>   s   


%
#