Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib/python3.5/site-packages/wheel/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib/python3.5/site-packages/wheel/__pycache__/util.cpython-35.pyc



/U�U�@s�dZddlZddlZddlZddlZddlZyddlmZWnek
rpe	ZYnXdddddd	gZ
d
d�Zdd�Zdd�Z
d
d�Zdd�Zyedd�ZWnek
r�dd�ZYnXy edd�Zdd�ZWn*ek
rFdd�Zdd�ZYnXGdd�de�ZGdd�de�Zejdkr�ddlZe	dddd d!d"�Zd#d$�Zd%d&�Zd'd(�Znd)d&�Zd*d(�Zd+d	�ZdS),zUtility functions.�N)�OrderedDict�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/python35/lib/python3.5/site-packages/wheel/util.pyrscCs)ddt|�d@}tj||�S)z!urlsafe_b64decode without padding�=��)�lenr
r)r
�padrrrrscCstj|dd�S)zConvert given data to JSON.�	sort_keysT)�json�dumps)�orrrrscCs
tj|�S)zDecode a JSON payload.)r�loads)�jrrrr scCsHtjddkr"i}d}nddi}d}t||||�S)Nrr�b�newline�)�sys�version_info�open)�name�mode�nl�binrrr�open_for_csv$s	r%cCs t|t�r|jd�S|S)zUtf-8 encode data.zutf-8)�
isinstance�unicode�encode)r
rrrr0s
cCs t|t�r|jd�S|S)zUtf-8 encode data.zutf-8)r&�strr()r
rrrr6s
cCs|S)Nr)�srrr�nativeAsr+cCs t|t�r|jd�S|S)N�ascii)r&r'r()r*rrrrCs
rcCs t|t�r|jd�S|S)Nr,)r&�bytes�decode)r*rrrr+Hs
cCs t|t�r|jd�SdS)Nr,)r&r)r()r*rrrrLsc@sCeZdZddd�Zdd�Zdd�Zdd	�Zd
S)�HashingFile�sha256cCs1||_||_tj|�|_d|_dS)Nr)�fd�hashtype�hashlib�new�hash�length)�selfr1r2rrr�__init__Qs		zHashingFile.__init__cCs9|jj|�|jt|�7_|jj|�dS)N)r5�updater6rr1�write)r7r
rrrr:VszHashingFile.writecCs|jj�dS)N)r1�close)r7rrrr;ZszHashingFile.closecCsF|jdkr|jj�S|jj�}|jdtt|��S)N�md5r	)r2r5�	hexdigest�digestr+r)r7r>rrrr>\s
zHashingFile.digestN)�__name__�
__module__�__qualname__r8r:r;r>rrrrr/Psr/cs.eZdZ�fdd�Zdd�Z�S)�OrderedDefaultDictcsx|sd|_nI|ddkp/t|d�s>td��|d|_|dd�}tt|�j||�dS)Nrz'first argument must be callable or None�)�default_factory�callable�	TypeError�superrBr8)r7�args�kwargs)�	__class__rrr8cs 
zOrderedDefaultDict.__init__cCs3|jdkrt|��|j�||<}|S)N)rD�KeyError)r7�key�defaultrrr�__missing__mszOrderedDefaultDict.__missing__)r?r@rAr8rNrr)rJrrBbs
rB�win32�
CSIDL_APPDATA��CSIDL_LOCAL_APPDATA��CSIDL_COMMON_APPDATA�#cCsEd}tjtjj�}tjjjdt|d||�|jS)Nr)	�ctypes�create_unicode_bufferZwintypes�MAX_PATH�windll�shell32�SHGetFolderPathW�csidl�value)r!�SHGFP_TYPE_CURRENT�bufrrr�get_pathys#r`cGsDtd�}tjj||�}tjj|�s@tj|�|S)NrR)r`�os�path�join�isdir�makedirs)�resourceZappdatarbrrr�save_config_paths

rgcgsYddg}xF|D]>}t|�}tjj||�}tjj|�r|VqWdS)NrRrT)r`rarbrc�exists)rfZids�id�baserbrrr�load_config_paths�s
rkcGsddl}|jj|�S)Nr)�xdg.BaseDirectory�
BaseDirectoryrg)rf�xdgrrrrg�scGsddl}|jj|�S)Nr)rlrmrk)rfrnrrrrk�scCs�yddlm}m}Wntk
r:td��YnX|j|�}g}xW|D]O}|j}|d|jd�d|jd��}||krW|j|�qWW|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_resourcesrorp�ImportError�RuntimeError�parseZparsed_filename�group�append)�reqZwheelsrorp�selectedZwf�f�distrrrr�s

	') �__doc__rrar
rr3�collectionsrru�dict�__all__rrrrr%r'r�	NameErrorr+r�objectr/rB�platformZctypes.wintypesrVr\r`rgrkrrrrr�<module>sP