o
    ni
                     @  s   U 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mZ d dl	m
Z
 er+d dlZedeZedeZedeZd)d*ddZd+ddZd,ddZd-ddZd.ddZd/ddZd0d d!Zd"Zd#ed$< d%e Zd#ed&< 	 d1d'd(ZdS )2    )annotationsN)TYPE_CHECKINGNewType)StrPathETagHexMD5B64MD5    databytesreturn_hashlib.HASHc                 C  s"   t jdkrtj| ddS t| S )z-Allow FIPS-compliant md5 hash when supported.)   	   F)usedforsecurity)sysversion_infohashlibmd5)r
    r   T/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/wandb/sdk/lib/hashutil.py_md5   s   

r   stringstrc                 C  s   t t| dS Nzutf-8)_b64_from_hasherr   encoder   r   r   r   
md5_string      r   hasherc                 C  s   t t|  dS )Nascii)r   base64	b64encodedigestdecode)r    r   r   r   r      s   r   c                 C  s   t t|  S N)r   r"   standard_b64decodehexr   r   r   r   b64_to_hex_id#   r   r)   encoded_stringstr | bytesc                 C  s2   t | tr
| d} t| }tt|dS r   )
isinstancer   r%   fromhexr   r"   standard_b64encode)r*   as_strr   r   r   hex_to_b64_id'   s   


r0   pathsr   c                  G  s   t t|  S r&   )r   _md5_file_hasherr1   r   r   r   md5_file_b64.   s   r4   c                  G  s   t t|   S r&   )r   r2   	hexdigestr3   r   r   r   md5_file_hex2   s   r6   i   int_KB   
_CHUNKSIZEc               
   G  s   t  }ttt| D ]^}t|dO}z"tj| dtjd}|| W d    n1 s.w   Y  W n$ t	yP   |
t}|rN|| |
t}|sBY n	 tyX   Y nw W d    n1 scw   Y  q
|S )Nrbr   )lengthaccess)r   sortedmapr   openmmapfilenoACCESS_READupdateOSErrorreadr:   
ValueError)r1   md5_hashpathfmviewchunkr   r   r   r2   ;   s,   


r2   )r	   )r
   r   r   r   )r   r   r   r   )r    r   r   r   )r   r   r   r   )r*   r+   r   r   )r1   r   r   r   )r1   r   r   r   )r1   r   r   r   )
__future__r   r"   r   rA   r   typingr   r   wandb.sdk.lib.pathsr   _hashlibr   r   r   r   r   r   r   r)   r0   r4   r6   r8   __annotations__r:   r2   r   r   r   r   <module>   s.    








