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

�
�/6R�A�@s�dZddlZddlZddlZddlZddlZddlZddlZddlZyddl	Z	Wn!e
k
r�ddlj	Z	YnXddlZej
Z
ejZddlmZddlmZddlmZddlmZddlmZddlmZd	d
lmZmZd	dlmZmZd	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)�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/python34/lib/python3.4/site-packages/wheel/bdist_wheel.py�
safer_name+srcCst|�jdd�S)Nrr)�safe_versionr)�versionrrr�
safer_version.src@seZdZdZd;ddde�fdd	d
dfd<d=d>d?d@dAg	ZdddgZdd�Zdd �Ze	d!d"��Z
d#d$�Zd%d&�Zd'd(�Z
d)ejd*d+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�ZdS)B�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]�skip-scripts�,skip building the setuptools console_scripts�(default: false)cCs�d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_	d|_
d|_d|_d|_
dS)N�zipF)�	bdist_dir�data_dir�	plat_name�format�	keep_temp�dist_dir�distinfo_dir�egginfo_dir�root_is_purelib�
skip_buildr)�owner�group�skip_scripts)�selfrrr�initialize_optionsQs													zbdist_wheel.initialize_optionscCs�|jdkr<|jd�j}tjj|d�|_n|jd|_d}|jdt	||��|j
j�|_dS)N�bdist�wheelz.datar:r7r>)zdist_dirz	plat_namez
skip_build)
r5�get_finalized_command�
bdist_base�os�path�join�wheel_dist_namer6�set_undefined_optionsr4�distribution�is_purer=)rBrGZneed_optionsrrr�finalize_optionsas	zbdist_wheel.finalize_optionscCs1djt|jj��t|jj��f�S)z4Return distribution full name with - replaced with _r)rJrrM�get_namer�get_version)rBrrrrKoszbdist_wheel.wheel_dist_namec
Csatj�}|jj�}t�}d}d}d}|r�|jjd�}d|kr�|ddj�}|j�dkr�d
}d}q�n||||f}	n�|j}|dkr�t	�}n|j
dd
�j
dd
�}t�}tj
�jd|�}|jd�r4d|jdd�d}n||||f}	|	|dks]t�|	S)NZnone�any�pyrE�	universalr�1�true�yeszpy2.py3�rr�.�SOABIzcpython-�cpr)rUztruezyes���)rZ
get_supportedrMrNr
�get_option_dict�strip�lowerr7rrr	�	sysconfig�get_config_vars�get�
startswith�rsplit�AssertionError)
rBZsupported_tagsZpurityZimpl_ver�abi_tagr7Z	impl_namerE�val�tagrrr�get_tagus2			zbdist_wheel.get_tagcCs2|j�\}}}d|j|||f}|S)z%Return archive name without extensionz%s-%s-%s-%s)rirK)rB�impl_tagrf�plat_tag�archive_basenamerrr�get_archive_basename�s
z bdist_wheel.get_archive_basenamec
Cs�|jd�}d|_|js1|jd�n|jddd�}|j|_d|_|j|_d|_|jr�|jd�}d|_	nx4dD],}t
|d|tjj
|j|��q�Wd}tjdkrtjj
|jd�}||_|_nt
||jr dnd|�tjd|j�|jd�|j�}tjj
|j|�}|js�|j}n$tjj
|j|j|j��}|jdd�tjj
|jd|j�|_|j|j|j�|j|j�|j |j|j�tjj!|j�s=tj"|j�nt#||�}	dtj$kr{t%j&tj$dd|	g�nt'|j(dg�j)dt*�|	f�|j+s�|j,r�tjd|j�q�t-|j�ndS) N�
build_scripts�python�build�install�reinit_subcommandsTF�install_scripts�headers�scripts�data�purelib�platlib�install_rX�ntz..�install_purelib�install_platlibzinstalling to %s�install_egg_info�targetr<z%s.dist-infoZ
WHEEL_TOOL�sign�
dist_filesrzremoving %s)zheaderszscriptszdatazpurelibzplatlib)ztargetzegginfo_dir).�reinitialize_command�
executabler>�run_commandr5�root�compile�warn_dirrA�no_ep�setattrrHrIrJr6r�install_libbase�install_libr=�logger�informr:r)�_ensure_relative�install_baserLrKr;�egg2distr<�write_wheelfile�write_record�exists�makedirsr
�environ�
subprocess�call�getattrrM�appendrr9�dry_runr)
rBrnrqrs�keyZbasedir_observedrlZpseudoinstall_rootZarchive_rootZ
wheel_namerrr�run�sh						

		

 		zbdist_wheel.runz
bdist_wheel (�)c
Csddlm}|�}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|�WdQXdS)Nr)�Messagez1.0z
Wheel-VersionrzRoot-Is-PurelibrYrZTagZWHEELzcreating %s�w�maxheaderlen)Z
email.messager��strr=r_ri�splitrJrHrIr�r��openr�flatten)
rBZwheelfile_base�	generatorr��msgrjrfrk�implZabi�platZwheelfile_path�frrrr��s	

(zbdist_wheel.write_wheelfilecCsLtjj|�\}}|dd�tjkrH||dd�}n|S)Nrr)rHrI�
splitdrive�sep)rBrI�driverrrr�
szbdist_wheel._ensure_relativecCstj||�S)N)rZpkginfo_to_metadata)rBZ
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)rMr])rBrrrrr�szbdist_wheel.license_fileccs�|jjd�}xnd
D]f\}}||kr7qn||}x;|dj�D])}|j�}|spqRn||fVqRWqWdS)aRGenerate 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��z
requires_distr�)r�r�)rMr]�
splitlinesr^)rBrr��title�field�linerrr�setupcfg_requirementss
z!bdist_wheel.setupcfg_requirementscCs�t|j��}|sdSt|�}d|ks@d|kr^tjd�|d=|d=nx|D]\}}|||<qeWt||�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)rB�
metadata_path�
additional�pkg_infor#�vrrr�add_requirements=s

zbdist_wheel.add_requirementscCs�dd�}||�tjj|�s�ddl}tjjtjj|�d�}|j|�}d|f}|r�tjj|d�}|d|f7}nt|��ntjj|�r�|}	|j	||�}
tj
|�n�tjj|d�}	|j	||	�}
tj||d	d
d��tjj|d�}t
|d
�j�j�sj||�nttjj|d�|
�tjj|d�}|j|�tjj|d�}
t|d|j�}d|kr]d}|jd�}tjj||�}t
|d��}|j|jd��WdQX|jdi�|d<||dd<n|j�}|r�d}tj|tjj|j|��|jdi�|d<||dd<nt
|
d��}tj||�WdQX||�dS)z:Convert an .egg-info directory into a .dist-info directorycSsmtjj|�rGtjj|�rGtjj|�rGtj|�n"tjj|�ritj|�ndS)z-Appropriately delete directory, file or link.N)rHrIr��islink�isdir�shutilr�unlink)r"rrr�adiosLs7z#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>psz&bdist_wheel.egg2dist.<locals>.<lambda>zdependency_links.txt�r�METADATAzpydist.jsonrM�descriptionzDESCRIPTION.rst�wbzutf-8Zdocument_nameszLICENSE.txt�licenser�)rHrIr��globrJ�dirname�basename�
ValueError�isfiler��mkdirr��copytreer��readr^rr�rrM�pop�write�encoderbr��copyr;�json�dump)rBZegginfo_pathZ
distinfo_pathr�r��pat�possible�errZaltr�r��dependency_linksr�Zmetadata_json_pathZpymetaZdescription_filenameZdescription_textZdescription_pathZdescription_filer�Zlicense_filenameZ
metadata_jsonrrrr�Js\
!



		"zbdist_wheel.egg2distcseddlm}tjj|d�}tjj|����fdd�}�fdd�}t|d���}tj|�}x�|�D]�}	tjj|	��}
||
�r�d	}d	}n[t	|	d
��}
|
j
�}WdQXtj|�j
�}dt||��}t|�}tjj|	��jtjjd�}|j|||f�q�WWdQXdS)
Nr)�urlsafe_b64encodeZRECORDc3sLxEtj��D]4\}}}x"|D]}tjj||�Vq&WqWdS)N)rH�walkrIrJ)�dir�dirs�filesr�)r5rrr��s
z&bdist_wheel.write_record.<locals>.walkcs
|�kS)z!Wheel hashes every possible file.r)rI)�record_relpathrr�skip�sz&bdist_wheel.write_record.<locals>.skipzw+rX�rbzsha256=�/)Z
wheel.utilr�rHrIrJ�relpathr�csv�writerr�r��hashlib�sha256�digestr�lenrr�Zwriterow)rBr5r;r�Zrecord_pathr�r�Zrecord_filer�rIr��hash�sizer�rvr�r)r5r�rr��s(		zbdist_wheel.write_record)rr r!)r$r%r&)r'Nr()zrelativeNr*)r+r,r-)r.r/r0)r1Nr2r3)�__name__�
__module__�__qualname__r�r�user_options�boolean_optionsrCrO�propertyrKrirmr�rE�__version__r�r�r�r�r�r�r�r�rrrrr1sJ
	$R"
Rr)+�__doc__r�r�rHr�r�r�r�rEr`�ImportError�distutils.sysconfig�
pkg_resourcesrrr�email.generatorr�distutils.utilr�distutils.corerr�	distutilsrr�rr	r
�utilrr�archiver
ZpkginforrrrrXrrrrrrr�<module>s<