Ë
    0Iæj6  ã                   óD  — 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	m
Z
 d dlZddlmZ  ej                   ej                  d«      d«      Z ej                   e«      s	  ej"                  e«       dd„Zdd„Z	 	 	 	 	 	 dd	e
e   fd
„Zd„ Zdd„Zy# e$ r Y Œ'w xY w)é    N)ÚOptionalé   )Údownloadú~z.cache/gdownc                 ó8  ‡‡— t        j                  dt        «       ‰€dŠt        j                  «       }t        | d«      5 Št        ˆˆfd„d«      D ]  }|j                  |«       Œ 	 d d d «       |j                  «       S # 1 sw Y   |j                  «       S xY w)Nz7md5sum is deprecated and will be removed in the future.é   Úrbc                  ó&   •— ‰j                  ‰ «      S ©N©Úread)Ú	blocksizeÚfs   €€úX/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/gdown/cached_download.pyú<lambda>zmd5sum.<locals>.<lambda>    ó   ø€  !§&¡&¨Ó"3€ ó    r   )	ÚwarningsÚwarnÚFutureWarningÚhashlibÚmd5ÚopenÚiterÚupdateÚ	hexdigest)Úfilenamer   ÚhashÚblockr   s    `  @r   Úmd5sumr       s‰   ù€ Ü‡M�MØAÄ=ôð ÐØˆ	ä�;‰;‹=€DÜ	ˆh˜Ó	ð  ÜÔ3°SÓ9ò 	ˆEØ�K‰K˜Õñ	÷ð �>‰>ÓÐ÷ð �>‰>ÓÐús   Á'BÂBc                 ó  — t        j                  dt        «       t        |t        «      rt        |«      dk(  st        d|› �«      ‚t        | «      }||k(  r$|s!t        d| ›d|›�t        j                  ¬«       yt        d|› d	|› �«      ‚)
Nz>assert_md5sum is deprecated and will be removed in the future.é    zMD5 must be 32 chars: zMD5 matches: z == ©ÚfileTzMD5 doesn't match:
actual: ú
expected: )r   r   r   Ú
isinstanceÚstrÚlenÚ
ValueErrorr    ÚprintÚsysÚstderrÚAssertionError)r   r   Úquietr   Ú
md5_actuals        r   Úassert_md5sumr0   %   s‰   € Ü‡M�MØHÌ-ôô �sœCÔ ¤S¨£X°¢^ÜÐ1°#°Ð7Ó8Ð8ä˜Ó!€Jà�SÒÙÜ�M ( ¨T°#°Ð9ÄÇ
Á
ÕKØä
Ð7¸
°|À<ÐPSÈuÐUÓ
VÐVr   r   c           
      ó’  — |€\| j                  dd«      j                  dd«      j                  dd«      j                  dd	«      }t        j                  t        |«      }|�|�t	        d
«      ‚|�t        j                  dt        «       d|› �}~t        j                  |«      r$|s"|st        d|› �t        j                  ¬«       |S t        j                  |«      r|r	 t        |||¬«       |S t        j                  t        d«      }	 t        j                  t        j                   |«      «       t%        j&                  t        ¬«      }		 t        j                  |	d«      }
|rd|› d�nd}t)        d| |
|d|› �d|› d�dœdœ|¤Ž t+        j,                  |«      5  t/        j0                  |
|«       ddd«       |rt        |||¬«       |� ||«       |S # t        $ r&}t        |t        j                  ¬«       Y d}~�Œd}~ww xY w# t"        $ r Y Œâw xY w# 1 sw Y   ŒfxY w# t2        $ r t/        j4                  |	«       ‚ w xY w)aü  Cached download from URL.

    Parameters
    ----------
    url: str
        URL. Google Drive URL is also supported.
    path: str, optional
        Output filename. Default is basename of URL.
    md5: str, optional
        Expected MD5 for specified file. Deprecated in favor of `hash`.
    quiet: bool
        Suppress terminal output. Default is False.
    postprocess: callable, optional
        Function called with filename as postprocess.
    hash: str, optional
        Hash value of file in the format of {algorithm}:{hash_value}
        such as sha256:abcdef.... Supported algorithms: md5, sha1, sha256, sha512.
    kwargs: dict
        Keyword arguments to be passed to `download`.

    Returns
    -------
    path: str
        Output filename.
    Nú/z-SLASH-ú:z-COLON-ú=z-EQUAL-ú?z
-QUESTION-z2md5 and hash cannot be specified at the same time.zImd5 is deprecated in favor of hash. Please use hash='md5:xxx...' instead.zmd5:zFile exists: r#   )Úpathr   r.   Ú_dl_lock)ÚdirÚdlzHash: ú
Ú zCached downloading...
zTo: )ÚstartÚoutput)Úurlr=   r.   Úlog_messages© )ÚreplaceÚospÚjoinÚ
cache_rootr)   r   r   r   Úexistsr*   r+   r,   Ú_assert_filehashr-   ÚosÚmakedirsÚdirnameÚOSErrorÚtempfileÚmkdtempr   ÚfilelockÚFileLockÚshutilÚmoveÚ	ExceptionÚrmtree)r>   r6   r   r.   Úpostprocessr   ÚkwargsÚeÚ	lock_pathÚ	temp_rootÚ	temp_pathÚlog_message_hashs               r   Úcached_downloadrZ   7   s0  € ðD €|à�K‰K˜˜YÓ'ß‰W�S˜)Ó$ß‰W�S˜)Ó$ß‰W�S˜,Ó'ð	 	ô �x‰xœ
 DÓ)ˆà
€˜4Ð+ÜÐMÓNÐNà
€Ü�‰ØWÜô	
ð �c�Uˆ|ˆØô ‡z�z�$Ô¡ÙÜ�M $ Ð(¬s¯z©zÕ:ØˆÜ	�‰�DÔ	™dð	&Ü $¨T¸Õ?ØˆKô —‘œ ZÓ0€IðÜ
�‰”C—K‘K Ó%Ô&ô × Ñ ¤ZÔ0€IðÜ—H‘H˜Y¨Ó-ˆ	á04˜V D 6¨Ñ,¸"ÐÜð 		
ØØØà2Ð3CÐ2DÐEØ    b˜/ññ			
ð ò		
ô ×Ñ˜yÓ)ñ 	)Ü�K‰K˜	 4Ô(÷	)ñ Ü˜d¨°UÕ;ð ÐÙ�DÔà€KøôM ò 	&ä�!œ#Ÿ*™*×%Ó%ûð	&ûô ò Ùðú÷"	)ð 	)ûäò Ü�‰�iÔ ØðúsO   Ã!G Ä(H ÅAH& ÆHÆ5H& Ç	HÇ"HÈHÈ	HÈHÈH#ÈH& È& Ic                 óP  ‡‡— dŠ|t         j                  vrt        d|› dt         j                  › �«      ‚ t        t         |«      «       }t	        | d«      5 Št        ˆˆfd„d«      D ]  }|j                  |«       Œ 	 d d d «       |› d|j                  «       › �S # 1 sw Y   ŒxY w)Nr   zUnsupported hash algorithm: z. Supported algorithms: r	   c                  ó&   •— ‰j                  ‰ «      S r   r   )Ú	BLOCKSIZEr   s   €€r   r   z#_compute_filehash.<locals>.<lambda>ª   r   r   r   r3   )r   Úalgorithms_guaranteedr)   Úgetattrr   r   r   r   )r6   Ú	algorithmÚalgorithm_instancer   r]   r   s       @@r   Ú_compute_filehashrb   Ÿ   s¹   ù€ Ø€Iàœ×5Ñ5Ñ5ÜØ*¨9¨+ð 6%Ü%,×%BÑ%BÐ$CðEó
ð 	
ð
 5œ¤¨)Ó4Ó6ÐÜ	ˆd�DÓ	ð -˜QÜÔ3°SÓ9ò 	-ˆEØ×%Ñ% eÕ,ñ	-÷-ð ˆ[˜Ð,×6Ñ6Ó8Ð9Ð:Ð:÷-ð -ús   Á'BÂB%c                 ó˜   — d|vrt        d|› d�«      ‚|j                  d«      d   }t        | |¬«      }||k(  ryt        d|› d|› �«      ‚)	Nr3   zInvalid hash: z9. Hash must be in the format of {algorithm}:{hash_value}.r   )r6   r`   Tz!File hash doesn't match:
actual: r%   )r)   Úsplitrb   r-   )r6   r   r.   r   r`   Úhash_actuals         r   rF   rF   ¯   sq   € Ø
�$�ÜØ˜T˜Fð #Fð Fó
ð 	
ð —
‘
˜3“ Ñ"€Iä#¨¸ÔC€Kà�dÒØä
Ø
,¨[¨M¸ÀdÀVÐLóð r   r   )FN)NNNFNN)r   rG   Úos.pathr6   rB   rO   r+   rK   r   Útypingr   rM   r   rC   Ú
expanduserrD   rE   rH   rJ   r    r0   r'   rZ   rb   rF   r@   r   r   ú<module>ri      sµ   ðÛ Û 	Ý Û Û 
Û Û Ý ã å àˆS�X‰X�n�c—n‘n SÓ)¨>Ó:€
Ø€s‡z�z�*ÔðØˆ�‰�JÔó
óWð& 	Ø	ØØ
ØØñeð �3‰-óeòP;ô øð{ ò Ùðús   Á%B ÂBÂB