Your IP : 216.73.216.213


Current Path : /opt/alt/python37/lib/python3.7/site-packages/wheel/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib/python3.7/site-packages/wheel/__pycache__/util.cpython-37.pyc

B

Dt�Z,�@sdZddlZddlZddlZddlZddlZddddddgZejdd	krZeZ	d'dd�Z
neZ	d(d
d�Z
dd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�ZGdd�de�Zejdkr�ddlZdddd�Zdd�Zd d!�Zd"d#�Znd$d!�Zd%d#�Zd&d�ZdS))zUtility functions.�N�urlsafe_b64encode�urlsafe_b64decode�utf8�to_json�	from_json�matches_requirement��asciicCs|S)N�)�s�encodingr
r
�;/opt/alt/python37/lib/python3.7/site-packages/wheel/util.py�nativesrcCst|t�r|�|�S|S)N)�
isinstance�bytes�decode)rrr
r
r
rs

cCst�|��td��S)z!urlsafe_b64encode without padding�=)�base64r�rstrip�binary)�datar
r
r
rscCs"ddt|�d@}t�||�S)z!urlsafe_b64decode without padding�=�r)�lenrr)r�padr
r
r
r"scCstj|dd�S)zConvert given data to JSON.T)�	sort_keys)�json�dumps)�or
r
r
r(scCs
t�|�S)zDecode a JSON payload.)r�loads)�jr
r
r
r-scCs4tjddkri}|d7}n
ddd�}t||f|�S)Nrr�b�zutf-8)�newliner)�sys�version_info�open)�name�mode�kwargsr
r
r
�open_for_csv2s


r*cCst|t�r|�d�S|S)zUtf-8 encode data.zutf-8)r�	text_type�encode)rr
r
r
r<s

cCst|t�r|�d�S|S)Nr	)rr+r,)rr
r
r
rCs

rc@s>eZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�ZdS)�HashingFile�sha256cCs(t||�|_||_t�|�|_d|_dS)Nr)r&�fd�hashtype�hashlib�new�hash�length)�self�pathr(r0r
r
r
�__init__JszHashingFile.__init__cCs.|j�|�|jt|�7_|j�|�dS)N)r3�updater4rr/�write)r5rr
r
r
r9PszHashingFile.writecCs|j��dS)N)r/�close)r5r
r
r
r:UszHashingFile.closecCs4|jdkr|j��S|j��}|jdtt|��S)N�md5r)r0r3�	hexdigest�digestrr)r5r=r
r
r
r=Xs


zHashingFile.digestcCs|S)Nr
)r5r
r
r
�	__enter__^szHashingFile.__enter__cCs|j��dS)N)r/r:)r5�exc_type�exc_val�exc_tbr
r
r
�__exit__aszHashingFile.__exit__N)r.)	�__name__�
__module__�__qualname__r7r9r:r=r>rBr
r
r
r
r-Is
r-�win32���#)�
CSIDL_APPDATA�CSIDL_LOCAL_APPDATA�CSIDL_COMMON_APPDATAcCs2d}t�tjj�}tjj�dt|d||�|jS)Nr)	�ctypes�create_unicode_bufferZwintypes�MAX_PATH�windll�shell32�SHGetFolderPathW�csidl�value)r'�SHGFP_TYPE_CURRENT�bufr
r
r
�get_pathksrWcGs4td�}tjj|f|��}tj�|�s0t�|�|S)NrK)rW�osr6�join�isdir�makedirs)�resourceZappdatar6r
r
r
�save_config_pathqs

r]cgsFddg}x8|D]0}t|�}tjj|f|��}tj�|�r|VqWdS)NrKrL)rWrXr6rY�exists)r\Zids�id�baser6r
r
r
�load_config_pathsxs
racGsddl}|jj|�S)Nr)�xdg.BaseDirectory�
BaseDirectoryr])r\�xdgr
r
r
r]�scGsddl}|jj|�S)Nr)rbrcra)r\rdr
r
r
ra�scCs�yddlm}m}Wntk
r0td��YnX|�|�}g}x<|D]4}|j}||�d�|�d�d�}||krF|�|�qFW|S)z�List of wheels matching a requirement.

    :param req: The requirement to satisfy
    :param wheels: List of wheels to search.
    r)�Distribution�Requirementz-Cannot use requirements without pkg_resourcesr'�ver)�project_name�version)	�
pkg_resourcesrerf�ImportError�RuntimeError�parseZparsed_filename�group�append)�reqZwheelsrerf�selectedZwf�f�distr
r
r
r�s

)r	)r	)�__doc__rr1rrXr$�__all__r%�unicoder+r�strrrrrr*rr�objectr-�platformZctypes.wintypesrMrSrWr]rarr
r
r
r
�<module>s: