Your IP : 216.73.216.213


Current Path : /opt/alt/python34/lib/python3.4/site-packages/wheel/__pycache__/
Upload File :
Current File : //opt/alt/python34/lib/python3.4/site-packages/wheel/__pycache__/util.cpython-34.pyc

�
�/6RY�@s�dZddlZddlZddlZddlZddlZddddddgZd	d�Zd
d�Zdd�Z	dd�Z
d
d�Zyedd�Z
Wnek
r�dd�Z
YnXy edd�Zdd�ZWn*ek
rdd�Zdd�ZYnXGdd�de�Zejdkr�ddlZedddddd�Zd d!�Zd"d#�Zd$d%�Znd&d#�Zd'd%�Zd(d�ZdS))zUtility functions.�N�urlsafe_b64encode�urlsafe_b64decode�utf8�to_json�	from_json�matches_requirementcCstj|�jtd��S)z!urlsafe_b64encode without padding�=)�base64r�rstrip�binary)�data�r
�;/opt/alt/python34/lib/python3.4/site-packages/wheel/util.pyrscCs)ddt|�d@}tj||�S)z!urlsafe_b64decode without padding�=��)�lenr	r)r�padr
r
rrscCstj|dd�S)zConvert given data to JSON.Z	sort_keysT)�json�dumps)�or
r
rrscCs
tj|�S)zDecode a JSON payload.)r�loads)�jr
r
rrscCsItjddkr"i}d}nidd6}d}t||||�S)Nrr�b��newline)�sys�version_info�open)�name�mode�nl�binr
r
r�open_for_csv s	
r#cCs t|t�r|jd�S|S)zUtf-8 encode data.zutf-8)�
isinstance�unicode�encode)rr
r
rr,s
cCs t|t�r|jd�S|S)zUtf-8 encode data.zutf-8)r$�strr&)rr
r
rr2s
cCs|S)Nr
)�sr
r
r�native=sr)cCs t|t�r|jd�S|S)N�ascii)r$r%r&)r(r
r
rr?s
rcCs t|t�r|jd�S|S)Nr*)r$�bytes�decode)r(r
r
rr)Ds
cCs t|t�r|jd�SdS)Nr*)r$r'r&)r(r
r
rrHsc@sCeZdZddd�Zdd�Zdd�Zdd	�Zd
S)�HashingFile�sha256cCs1||_||_tj|�|_d|_dS)Nr)�fd�hashtype�hashlib�new�hash�length)�selfr/r0r
r
r�__init__Ms		zHashingFile.__init__cCs9|jj|�|jt|�7_|jj|�dS)N)r3�updater4rr/�write)r5rr
r
rr8RszHashingFile.writecCs|jj�dS)N)r/�close)r5r
r
rr9VszHashingFile.closecCsF|jdkr|jj�S|jj�}|jdtt|��S)N�md5r)r0r3�	hexdigest�digestr)r)r5r<r
r
rr<Xs
zHashingFile.digestN)�__name__�
__module__�__qualname__r6r8r9r<r
r
r
rr-Lsr-�win32Z
CSIDL_APPDATA��CSIDL_LOCAL_APPDATA��CSIDL_COMMON_APPDATA�#cCsEd}tjtjj�}tjjjdt|d||�|jS)Nr)	�ctypesZcreate_unicode_bufferZwintypesZMAX_PATHZwindllZshell32ZSHGetFolderPathW�csidl�value)rZSHGFP_TYPE_CURRENT�bufr
r
r�get_pathds#rJcGsGtd�}tjj||�}tjj|�sCtj|�n|S)NrB)rJ�os�path�join�isdir�makedirs)�resourceZappdatarLr
r
r�save_config_pathjs
rQcgs\ddg}xI|D]A}t|�}tjj||�}tjj|�r|VqqWdS)NrBrD)rJrKrLrM�exists)rPZids�id�baserLr
r
r�load_config_pathsps
rUcGsddl}|jj|�S)Nr)�dirspec.basedir�basedirrQ)rP�dirspecr
r
rrQxscGsddl}|jj|�S)Nr)rVrWrU)rPrXr
r
rrU{scCs�yddlm}m}Wntk
r:td��YnX|j|�}g}xZ|D]R}|j}|d|jd�d|jd��}||krW|j|�qWqWW|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_resources�project_namer�version�ver)	�
pkg_resourcesrYrZ�ImportError�RuntimeError�parseZparsed_filename�group�append)�reqZwheelsrYrZ�selectedZwf�f�distr
r
rrs

	')�__doc__rrKr	rr1�__all__rrrrr#r%r�	NameErrorr)r�objectr-�platformZctypes.wintypesrF�dictrGrJrQrUrr
r
r
r�<module>sF