Your IP : 216.73.216.213


Current Path : /opt/alt/python36/lib/python3.6/site-packages/wheel/__pycache__/
Upload File :
Current File : //opt/alt/python36/lib/python3.6/site-packages/wheel/__pycache__/bdist_wheel.cpython-36.pyc

3

Dt�Z >�@sdZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZddlm
Z
ddlmZddlmZddlZdd	lmZmZmZmZdd
lmZmZddlmZddlmZdd
lm Z ddl!mZddl!m"Z#ej$Z$ej%Z%dZ&dd�Z'dd�Z(Gdd�de�Z)dS)zI
Create a wheel (.whl) distribution.

A wheel is a built archive format.
�N)�	Generator)�Command)�get_python_version)�log)�rmtree�)�
get_abbr_impl�get_impl_ver�get_abi_tag�get_platform)�native�open_for_csv)�archive_wheelfile)�write_pkg_info)�pkginfo_to_metadata)�
pep425tags)�__version__zcp3\dcCst|�jdd�S)N�-�_)�	safe_name�replace)�name�r�B/opt/alt/python36/lib/python3.6/site-packages/wheel/bdist_wheel.py�
safer_name%srcCst|�jdd�S)Nrr)�safe_versionr)�versionrrr�
safer_version)src@s�eZdZdZd;ddde�fd=d>d?d@dAdBdCddde�dfdDdEgZddddgZd#d$�Zd%d&�Z	e
d'd(��Zd)d*�Zd+d,�Z
d-d.�Zd/ed0fd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�ZdS)F�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)�	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)r�
build-number=�qBuild number for this particular version. As specified in PEP-0427, this must start with a digit. [default: None]�py-limited-api=�?Python tag (cp32|cp33|cpNN) for abi3 wheel tag (default: false)cCs�d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_	d|_
d|_d|_d|_
d|_dt�d|_d|_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�build_number�py_limited_api�plat_name_supplied)�selfrrr�initialize_optionsWs&zbdist_wheel.initialize_optionscCs�|jdkr&|jd�j}tjj|d�|_|jd|_|jdk	|_	d}|j
dt||���|jj
�ph|jj�|_|jr�tjt|j�r�tdt��|jjd�}d|kr�|dd	j�}|j�dkr�d
|_|jdk	r�|jdd	�j�r�td��dS)N�bdist�wheelz.datar@r<rDzpy-limited-api must match '%s'r2r�1�true�yesTz1Build tag (build-number) must start with a digit.)r@r<rD)rM)rOrPrQ)r:�get_finalized_command�
bdist_base�os�path�join�wheel_dist_namer;r<rJ�set_undefined_optionsr8�distribution�has_ext_modules�has_c_librariesrCrI�re�match�PY_LIMITED_API_PATTERN�
ValueError�get_option_dict�strip�lowerr2rH�isdigit)rKrSZneed_optionsrN�valrrr�finalize_optionsls&

zbdist_wheel.finalize_optionscCs8t|jj��t|jj��f}|jr.||jf7}dj|�S)z4Return distribution full name with - replaced with _r)rrY�get_namer�get_versionrHrV)rK�
componentsrrrrW�s
zbdist_wheel.wheel_dist_namecCs|jr|j}n.|jrd}n"|jp$t�}|dkr<tjdkr<d}|jdd�jdd�}|jrt|jrbd	}n|j}|d
|f}n�t	�}t
�}||}|jr�||jd�r�|j}d}nt
t��j�}|||f}tj|jr�|ndd
�}|j�s||dk�std||df��||k�stdj|���|S)N�any�linux-x86_64�linux_x86_64i���Z
linux_i686rr�.zpy2.py3ZnoneZcp3Zabi3)Zsupplied_platformrz%s != %sz)would build wheel with unsupported tag {})rjrk)rJr<rCr�sys�maxsizerr2rGrr	rI�
startswith�strr
rbrZ
get_supported�AssertionErrorr>)rKr<�impl�tagZ	impl_nameZimpl_ver�abi_tagZsupported_tagsrrr�get_tag�s6
"zbdist_wheel.get_tagcCs$|j�\}}}d|j|||f}|S)z%Return archive name without extensionz%s-%s-%s-%s)rurW)rK�impl_tagrtr=�archive_basenamerrr�get_archive_basename�sz bdist_wheel.get_archive_basenamec
Cs|jd�}d|_|js |jd�|jddd�}|j|_d|_|j|_d|_|jd�}d|_x(dD] }t	|d|t
jj|j
|��q`Wd}t
jdkr�t
jjt
jj|j
d��}||_|_t	||jr�dnd|�tjd|j�|jd�|j�}t
jj|j|�}|j�s|j}nt
jj|j|j|j��}|jdd�t
jj|jd|j�|_|j|j|j�|j|j�|j |j|j�t
jj!|j��s�t
j"|j�t#||�}	dt
j$k�r�t%j&t
j$dd|	g�t'|j(dg�j)dt*�|	f�|j+�stjd|j�|j,�st-|j�dS) N�
build_scripts�python�build�installT)�reinit_subcommandsF�install_scripts�headers�scripts�data�purelib�platlib�install_��ntz..�install_purelib�install_platlibzinstalling to %s�install_egg_info�targetrBz%s.dist-infoZ
WHEEL_TOOL�sign�
dist_filesrzremoving %s)rr�r�r�r�)r�rB).�reinitialize_command�
executablerD�run_commandr:�root�compile�warn_dir�no_ep�setattrrTrUrVr;r�normpath�install_libbase�install_librC�logger�inforxr@r*�_ensure_relative�install_baserXrWrA�egg2distrB�write_wheelfile�write_record�exists�makedirsr�environ�
subprocess�call�getattrrY�appendrr?�dry_runr)
rKryr|r~�keyZbasedir_observedrwZpseudoinstall_rootZarchive_rootZ
wheel_namerrr�run�sf







zbdist_wheel.runz
bdist_wheel (�)c
Cs�ddlm}|�}d|d<||d<t|j�j�|d<|jdk	rH|j|d<|j�\}}}xN|jd�D]@}x:|jd�D],}	x&|jd�D]}
d	j||	|
f�|d
<q�WqrWqbWt	j
j|d�}tjd|�t
|d
��}t|dd�j|�WdQRXdS)Nr)�Messagez1.0z
Wheel-VersionrzRoot-Is-PurelibZBuildrlrZTagZWHEELzcreating %s�w)Zmaxheaderlen)�
email.messager�rprCrbrHru�splitrVrTrUr�r��openrZflatten)
rKZwheelfile_base�	generatorr��msgrvrtr=rr�abi�platZwheelfile_path�frrrr�s 

 zbdist_wheel.write_wheelfilecCs6tjj|�\}}|dd�tjkr2||dd�}|S)Nrr)rTrU�
splitdrive�sep)rKrU�driverrrr�,szbdist_wheel._ensure_relativecCs$|jjd�}d|krdS|ddS)zFReturn license filename from a license-file key in setup.cfg, or None.�metadata�license_fileNr)rYr`)rKr�rrrr�3szbdist_wheel.license_filecCsPdd�}||�tjj|�sxddl}tjjtjj|�d�}|j|�}d|f}|rptjj|d�}|d|f7}t|��tjj|�r�|}	t	||�}
tj
|�njtjj|d�}	t	||	�}
tj||d	d
�d�tjj|d�}t
|d
��}|j�j�}
WdQRX|
�s||�ttjj|d�|
�|j�}|�rDd}tj|tjj||��||�dS)z:Convert an .egg-info directory into a .dist-info directorycSsLtjj|�r2tjj|�r2tjj|�r2tj|�ntjj|�rHtj|�dS)z-Appropriately delete directory, file or link.N)rTrUr��islink�isdir�shutilr�unlink)r"rrr�adios<s&z#bdist_wheel.egg2dist.<locals>.adiosrNz
*.egg-infoz)Egg metadata expected at %s but not foundz- (%s found - possible misnamed archive file?)zPKG-INFOcSsddddhS)NzPKG-INFOzrequires.txtzSOURCES.txtznot-zip-safer)�x�yrrr�<lambda>`sz&bdist_wheel.egg2dist.<locals>.<lambda>)�ignorezdependency_links.txt�r�METADATAzLICENSE.txt)rTrUr��globrV�dirname�basenamer_�isfiler�mkdirr��copytreer��readrarr��copy)rKZegginfo_pathZ
distinfo_pathr�r��pat�possible�errZaltZpkginfo_path�pkg_infoZdependency_links_pathZdependency_links_file�dependency_links�licenseZlicense_filenamerrrr�:s<



zbdist_wheel.egg2distcs ddlm}tjj|d�}tjj|����fdd�}�fdd�}t|d���}tj|�}x�|�D]�}	tjj|	��}
||
�r�d	}d	}nDt	|	d
��}
|
j
�}WdQRXtj|�j
�}dt||��}t|�}tjj|	��jtjjd�}t|t�r�|jtj��jd
�}|j|||f�q^WWdQRXdS)Nr)�urlsafe_b64encodeZRECORDc3sHxBtj��D]4\}}}|j�x t|�D]}tjj||�Vq(WqWdS)N)rT�walk�sort�sortedrUrV)�dir�dirs�filesr�)r:rrr�{sz&bdist_wheel.write_record.<locals>.walkcs|�kS)z!Wheel hashes every possible file.r)rU)�record_relpathrr�skip�sz&bdist_wheel.write_record.<locals>.skipzw+r��rbzsha256=�/zutf-8)�utilr�rTrUrV�relpathr
�csv�writerr�r��hashlib�sha256�digestr�lenrr��
isinstance�bytes�decoderm�getfilesystemencoding�encodeZwriterow)rKr:rAr�Zrecord_pathr�r�Zrecord_filer�rUr��hash�sizer�r�r�r)r:r�rr�us*

zbdist_wheel.write_record)rr r!�Pkeep the pseudo-installation tree around after creating the distribution archive)r#r$r�)r%r&r')r(Nr))r*Nr+)r,r-r.)r/r0r1)r2Nr3)r4Nr5)r6Nr7)�__name__�
__module__�__qualname__�descriptionrr	�user_options�boolean_optionsrLre�propertyrWrurxr��
wheel_versionr�r�r�r�r�rrrrr-sP	&R;r)*�__doc__r�r�rTr�r�rmr\Zemail.generatorr�distutils.corer�distutils.sysconfigr�	distutilsrr�r�
pkg_resourcesrrr	r
rr�rr
�archiverZpkginforr�rr�rr�rrr^rrrrrrr�<module>s4