Your IP : 216.73.216.213


Current Path : /opt/alt/python36/lib/python3.6/site-packages/wheel/__pycache__/
Upload File :
Current File : //opt/alt/python36/lib/python3.6/site-packages/wheel/__pycache__/util.cpython-36.pyc

3

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/python36/lib/python3.6/site-packages/wheel/util.py�nativesrcCst|t�r|j|�S|S)N)�
isinstance�bytes�decode)rrr
r
r
rs

cCstj|�jtd��S)z!urlsafe_b64encode without padding�=)�base64r�rstrip�binary)�datar
r
r
rscCs"ddt|�d@}tj||�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
tj|�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|jd�S|S)zUtf-8 encode data.zutf-8)r�	text_type�encode)rr
r
r
r<s

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

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


zHashingFile.digestcCs|S)Nr
)r5r
r
r
�	__enter__^szHashingFile.__enter__cCs|jj�dS)N)r/r:)r5�exc_typeZexc_val�exc_tbr
r
r
�__exit__aszHashingFile.__exit__N)r.)	�__name__�
__module__�__qualname__r7r9r:r=r>rAr
r
r
r
r-Is
r-�win32���#)�
CSIDL_APPDATA�CSIDL_LOCAL_APPDATA�CSIDL_COMMON_APPDATAcCs2d}tjtjj�}tjjjdt|d||�|jS)Nr)	�ctypes�create_unicode_bufferZwintypes�MAX_PATH�windll�shell32�SHGetFolderPathW�csidl�value)r'�SHGFP_TYPE_CURRENT�bufr
r
r
�get_pathksrVcGs4td�}tjj|f|��}tjj|�s0tj|�|S)NrJ)rV�osr6�join�isdir�makedirs)�resourceZappdatar6r
r
r
�save_config_pathqs

r\cgsFddg}x8|D]0}t|�}tjj|f|��}tjj|�r|VqWdS)NrJrK)rVrWr6rX�exists)r[Zids�id�baser6r
r
r
�load_config_pathsxs
r`cGsddl}|jj|�S)Nr)�xdg.BaseDirectory�
BaseDirectoryr\)r[�xdgr
r
r
r\�scGsddl}|jj|�S)Nr)rarbr`)r[rcr
r
r
r`�sc
Cs�yddlm}m}Wntk
r0td��YnX|j|�}g}x<|D]4}|j}||jd�|jd�d�}||krF|j|�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_resourcesrdre�ImportError�RuntimeError�parseZparsed_filename�group�append)�reqZwheelsrdre�selectedZwf�f�distr
r
r
r�s

)r	)r	)�__doc__rr1rrWr$�__all__r%�unicoder+r�strrrrrr*rr�objectr-�platformZctypes.wintypesrLrRrVr\r`rr
r
r
r
�<module>s: