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.opt-1.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)rZpadr
r
r
r"scCstj|dd�S)zConvert given data to JSON.T)Z	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&r.r
r
r
�__init__JszHashingFile.__init__cCs.|j�|�|jt|�7_|j�|�dS)N)r1�updater2rr-�write)r3rr
r
r
r7PszHashingFile.writecCs|j��dS)N)r-�close)r3r
r
r
r8UszHashingFile.closecCs4|jdkr|j��S|j��}|jdtt|��S)NZmd5r)r.r1Z	hexdigest�digestrr)r3r9r
r
r
r9Xs


zHashingFile.digestcCs|S)Nr
)r3r
r
r
�	__enter__^szHashingFile.__enter__cCs|j��dS)N)r-r8)r3�exc_typeZexc_val�exc_tbr
r
r
�__exit__aszHashingFile.__exit__N)r,)	�__name__�
__module__�__qualname__r5r7r8r9r:r=r
r
r
r
r+Is
r+�win32���#)Z
CSIDL_APPDATA�CSIDL_LOCAL_APPDATA�CSIDL_COMMON_APPDATAcCs2d}t�tjj�}tjj�dt|d||�|jS)Nr)	�ctypesZcreate_unicode_bufferZwintypesZMAX_PATHZwindllZshell32ZSHGetFolderPathW�csidl�value)r%ZSHGFP_TYPE_CURRENTZbufr
r
r
�get_pathksrJcGs4td�}tjj|f|��}tj�|�s0t�|�|S)NrE)rJ�osr4�join�isdir�makedirs)�resourceZappdatar4r
r
r
�save_config_pathqs

rPcgsFddg}x8|D]0}t|�}tjj|f|��}tj�|�r|VqWdS)NrErF)rJrKr4rL�exists)rOZids�id�baser4r
r
r
�load_config_pathsxs
rTcGsddl}|jj|�S)Nr)�xdg.BaseDirectory�
BaseDirectoryrP)rO�xdgr
r
r
rP�scGsddl}|jj|�S)Nr)rUrVrT)rOrWr
r
r
rT�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%Zver)Zproject_name�version)	Z
pkg_resourcesrXrY�ImportError�RuntimeError�parseZparsed_filename�group�append)ZreqZwheelsrXrYZselectedZwf�fZdistr
r
r
r�s

)r	)r	)�__doc__rr/rrKr"�__all__r#Zunicoder)r�strrrrrr(rr�objectr+�platformZctypes.wintypesrGrHrJrPrTrr
r
r
r
�<module>s: