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__/bdist_wheel.cpython-35.pyc



?	�V!D�@s�dZddlZddlZddlZddlZddlZddlZddlZddlZyddl	Z	Wn!e
k
r�ddlj	Z	YnXddlZej
Z
ejZddlmZddlmZddlmZddlmZddlmZddlmZd	d
lmZmZmZd	dlmZm Z d	dl!m"Z"d	d
l#m$Z$m%Z%d	dl&m'Z'd	dl(mZm&Z&dd�Z)dd�Z*Gdd�de�Z+dS)zI
Create a wheel (.whl) distribution.

A wheel is a built archive format.
�N)�rmtree)�	Generator)�get_platform)�Command)�get_python_version)�log�)�
get_abbr_impl�get_impl_ver�get_abi_tag)�native�open_for_csv)�archive_wheelfile)�
read_pkg_info�write_pkg_info)�pkginfo_to_dict)�
pep425tags�metadatacCst|�jdd�S)N�-�_)�	safe_name�replace)�name�r�B/opt/alt/python35/lib/python3.5/site-packages/wheel/bdist_wheel.py�
safer_name+srcCst|�jdd�S)Nrr)�safe_versionr)�versionrrr�
safer_version.src@s9eZdZdZd=ddde�fdd	d
dfd>d?d@dAdBdCddde�dfg
ZddddgZdd �Zd!d"�Z	e
d#d$��Zd%d&�Zd'd(�Z
d)d*�Zd+ejd,d-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Zd;d<�ZdS)D�bdist_wheelzcreate a wheel distribution�
bdist-dir=�b�1temporary directory for creating the distributionz
plat-name=�pz;platform name to embed in generated filenames (default: %s)z	keep-temp�kz/keep the pseudo-installation tree around after z!creating the distribution archive�	dist-dir=�d�-directory to put final built distributions in�
skip-buildN�2skip rebuilding everything (for testing/debugging)�relative�6build the archive using relative paths(default: false)�owner=�u�@Owner name used when creating a tar file [default: current user]�group=�g�AGroup name used when creating a tar file [default: current group]�	universal�'make a universal wheel (default: false)zpython-tag=z7Python implementation compatibility tag (default: py%s)rcCs�d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_	d|_
d|_d|_d|_
d|_dt�d|_d|_dS)N�zipF�pyr)�	bdist_dir�data_dir�	plat_name�plat_tag�format�	keep_temp�dist_dir�distinfo_dir�egginfo_dir�root_is_pure�
skip_buildr*�owner�groupr2r
�
python_tag�plat_name_supplied)�selfrrr�initialize_optionsTs"															zbdist_wheel.initialize_optionscCs�|jdkr9|jd�j}tjj|d�|_|jd|_|jdk	|_	d
}|j
dt||��|jj
�p�|jj�|_|jjd�}d|kr�|ddj�}|j�dkr�d|_dS)N�bdist�wheelz.datar<r8r@r2r�1�true�yesT)r<r8r@)rIrJrK)r6�get_finalized_command�
bdist_base�os�path�join�wheel_dist_namer7r8rD�set_undefined_optionsr4�distribution�has_ext_modules�has_c_librariesr?�get_option_dict�strip�lowerr2)rErMZneed_optionsrH�valrrr�finalize_optionsgs	zbdist_wheel.finalize_optionscCs1djt|jj��t|jj��f�S)z4Return distribution full name with - replaced with _r)rPrrS�get_namer�get_version)rErrrrQszbdist_wheel.wheel_dist_namecCs|jr|j}n$|jr'd}n|jp6t�}|jdd�jdd�}|jr�|jrrd}n	|j}|d|f}nqt�}t�}t	t
��j�}||||f}tj
d|jr�|nd�}||dks�t�|S)	N�anyrr�.zpy2.py3ZnoneZsupplied_platformr)rDr8r?rrr2rCr	r
�strrrXrZ
get_supported�AssertionError)rEr8�impl�tagZ	impl_nameZimpl_ver�abi_tagZsupported_tagsrrr�get_tag�s&										zbdist_wheel.get_tagcCs2|j�\}}}d|j|||f}|S)z%Return archive name without extensionz%s-%s-%s-%s)rdrQ)rE�impl_tagrcr9�archive_basenamerrr�get_archive_basename�s
z bdist_wheel.get_archive_basenamec
Cs�|jd�}d|_|js.|jd�|jddd�}|j|_d|_|j|_d|_|jd�}d|_x4dD],}t	|d|t
jj|j
|��q�Wd}t
jdkrt
jjt
jj|j
d��}||_|_t	||jrdnd|�tjd|j�|jd�|j�}t
jj|j|�}|js}|j}n$t
jj|j|j|j��}|jdd�t
jj|jd|j�|_|j|j|j�|j|j�|j |j|j�t
jj!|j�s4t
j"|j�t#||�}	dt
j$krot%j&t
j$dd|	g�t'|j(dg�j)dt*�|	f�|j+s�|j,r�tjd|j�n
t-|j�dS) N�
build_scripts�python�build�install�reinit_subcommandsTF�install_scripts�headers�scripts�data�purelib�platlib�install_��ntz..�install_purelib�install_platlibzinstalling to %s�install_egg_info�targetr>z%s.dist-infoZ
WHEEL_TOOL�sign�
dist_filesrzremoving %s)rnrorprqrr)ryr>).�reinitialize_command�
executabler@�run_commandr6�root�compile�warn_dir�no_ep�setattrrNrOrPr7r�normpath�install_libbase�install_libr?�logger�inforgr<r*�_ensure_relative�install_baserRrQr=�egg2distr>�write_wheelfile�write_record�exists�makedirsr�environ�
subprocess�call�getattrrS�appendrr;�dry_runr)
rErhrkrm�keyZbasedir_observedrfZpseudoinstall_rootZarchive_rootZ
wheel_namerrr�run�sf		
				
$
		

		zbdist_wheel.runz
bdist_wheel (�)c
Cs ddlm}|�}d|d<||d<t|j�j�|d<|j�\}}}xg|jd�D]V}xM|jd�D]<}	x3|jd�D]"}
dj||	|
f�|d	<q�Wq�WqkWtj	j|d
�}t
jd|�t|d�� }t
|d
d�j|�WdQRXdS)Nr)�Messagez1.0z
Wheel-VersionrzRoot-Is-Purelibr^rZTagZWHEELzcreating %s�w�maxheaderlen)Z
email.messager�r_r?rXrd�splitrPrNrOr�r��openr�flatten)
rEZwheelfile_base�	generatorr��msgrercr9raZabi�platZwheelfile_path�frrrr�s	

(zbdist_wheel.write_wheelfilecCsItjj|�\}}|dd�tjkrE||dd�}|S)Nrr)rNrO�
splitdrive�sep)rErO�driverrrr�szbdist_wheel._ensure_relativecCstj||�S)N)rZpkginfo_to_metadata)rEZ
egg_info_path�pkginfo_pathrrr�_pkginfo_to_metadatasz bdist_wheel._pkginfo_to_metadatacCs.|jjd�}d|kr"dS|ddS)zFReturn license filename from a license-file key in setup.cfg, or None.r�license_fileNr)rSrV)rErrrrr�szbdist_wheel.license_fileccs�|jjd�}xhd
D]`\}}||kr4q||}x8|dj�D]&}|j�}|sjqO||fVqOWqWdS)a5Generate requirements from setup.cfg as
        ('Requires-Dist', 'requirement; qualifier') tuples. From a metadata
        section in setup.cfg:

        [metadata]
        provides-extra = extra1
            extra2
        requires-dist = requirement; qualifier
            another; qualifier2
            unqualified

        Yields

        ('Provides-Extra', 'extra1'),
        ('Provides-Extra', 'extra2'),
        ('Requires-Dist', 'requirement; qualifier'),
        ('Requires-Dist', 'another; qualifier2'),
        ('Requires-Dist', 'unqualified')
        r�provides_extra�Provides-Extra�
requires_dist�
Requires-DistrN�r�r��r�r�)r�r�)rSrV�
splitlinesrW)rErr��title�field�linerrr�setupcfg_requirements%s
z!bdist_wheel.setupcfg_requirementscCs�t|j��}|sdSt|�}d|ks@d|kr[tjd�|d=|d=x|D]\}}|||<qbWt||�dS)z@Add additional requirements from setup.cfg to file metadata_pathNzProvides-Extraz
Requires-Distz5setup.cfg requirements overwrite values from setup.py)�listr�r�warnings�warnr)rE�
metadata_path�
additional�pkg_infor$�vrrr�add_requirementsGs
zbdist_wheel.add_requirementscCs�dd�}||�tjj|�s�ddl}tjjtjj|�d�}|j|�}d|f}|r�tjj|d�}|d|f7}t|��tjj|�r�|}	|j	||�}
tj
|�n�tjj|d�}	|j	||	�}
tj||d	d
d��tjj|d�}t
|d
��}|j�j�}
WdQRX|
sw||�ttjj|d�|
�tjj|d�}|j|�tjj|d�}t|d|j�}d|krZd}|jd�}tjj||�}t
|d��}|j|jd��WdQRX||dddd<|j�}|r�d}tj|tjj|j|��||dddd<t
|d��}tj||dd�WdQRX||�dS)z:Convert an .egg-info directory into a .dist-info directorycSsjtjj|�rGtjj|�rGtjj|�rGtj|�ntjj|�rftj|�dS)z-Appropriately delete directory, file or link.N)rNrOr��islink�isdir�shutilr�unlink)r#rrr�adiosVs7z#bdist_wheel.egg2dist.<locals>.adiosrNz
*.egg-infoz)Egg metadata expected at %s but not foundz- (%s found - possible misnamed archive file?)zPKG-INFO�ignorecSs
td�S)N�PKG-INFO�requires.txt�SOURCES.txt�not-zip-safe)r�r�r�r�)�set)�x�yrrr�<lambda>zsz&bdist_wheel.egg2dist.<locals>.<lambda>zdependency_links.txt�r�METADATAz
metadata.jsonrS�descriptionzDESCRIPTION.rst�wbzutf-8�
extensionszpython.detailsZdocument_nameszLICENSE.txt�licenser��	sort_keysT)rNrOr��globrP�dirname�basename�
ValueError�isfiler��mkdirr��copytreer��readrWrr�rrS�pop�write�encoder��copyr=�json�dump)rEZegginfo_pathZ
distinfo_pathr�r��pat�possible�errZaltr�r�Zdependency_links_pathZdependency_links_file�dependency_linksr�Zmetadata_json_pathZpymetaZdescription_filenameZdescription_textZdescription_pathZdescription_filer�Zlicense_filenameZ
metadata_jsonrrrr�Ts\
!



		"zbdist_wheel.egg2distcsgddlm}tjj|d�}tjj|����fdd�}�fdd�}t|d���}tj|�}x�|�D]�}	tjj|	��}
||
�r�d	}d	}n\t	|	d
��}
|
j
�}WdQRXtj|�j
�}dt||��}t|�}tjj|	��jtjjd�}|j|||f�q�WWdQRXdS)
Nr)�urlsafe_b64encodeZRECORDc3s\xUtj��D]D\}}}|j�x(t|�D]}tjj||�Vq6WqWdS)N)rN�walk�sort�sortedrOrP)�dir�dirs�filesr�)r6rrr��s
z&bdist_wheel.write_record.<locals>.walkcs
|�kS)z!Wheel hashes every possible file.r)rO)�record_relpathrr�skip�sz&bdist_wheel.write_record.<locals>.skipzw+rt�rbzsha256=�/)Z
wheel.utilr�rNrOrP�relpathr
�csv�writerr�r��hashlib�sha256�digestr�lenrr�Zwriterow)rEr6r=r�Zrecord_pathr�r�Zrecord_filer�rOr��hash�sizer�rpr�r)r6r�rr��s(		zbdist_wheel.write_record)r r!r")r%r&r')r(Nr))r*Nr+)r,r-r.)r/r0r1)r2Nr3)�__name__�
__module__�__qualname__r�rr
�user_options�boolean_optionsrFrZ�propertyrQrdrgr�rH�__version__r�r�r�r�r�r�r�r�rrrrr1sN
S"
Rr),�__doc__r�r�rNr�r�r�r�rH�	sysconfig�ImportError�distutils.sysconfig�
pkg_resourcesrrr�email.generatorr�distutils.utilr�distutils.corerr�	distutilsrr�rr	r
r�utilrr
�archiverZpkginforrrrrtrrrrrrr�<module>s<