Sh3ll
OdayForums


Server : LiteSpeed
System : Linux premium84.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
User : claqxcrl ( 523)
PHP Version : 8.1.32
Disable Function : NONE
Directory :  /lib/python3.8/site-packages/pip/_internal/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3.8/site-packages/pip/_internal/__pycache__/wheel.cpython-38.pyc
U

��.eH��@s4dZddlmZddlZddlZddlZddlZddlZddlZ	ddl
Z
ddlZddlZddl
Z
ddlZddlmZddlmZddlmZddlmZddlmZdd	lmZdd
lmZddlmZddlm Z m!Z!m"Z"dd
l#m$Z$m%Z%ddl&m'Z'ddl(m)Z)ddl*m+Z+ddl,m-Z-m.Z.m/Z/ddl0m1Z1ddl2m3Z3m4Z4m5Z5m6Z6ddl7m8Z8ddl9m:Z:ddl;m<Z<ddl=m>Z>ddl?m@Z@e:�rddlAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMddlNmOZOddlPmQZQddlRmSZSddlTmUZUddlVmWZWeGeXdfZYeLeQgeZfZ[d Z\e�]e^�Z_d!d"�Z`dXd$d%�ZadYd&d'�Zbd(d)�Zcd*d+�Zdd,d-�Zee
�fd.e
jg�Zhd/d0�Zid1d2�Zjd3d4�Zkd5d6�Zld7d8�ZmGd9d:�d:en�Zod;d<�ZpGd=d>�d>e�ZqdZdAdB�ZrdCdD�ZsdEdF�ZtdGdH�ZuGdIdJ�dJev�Zwe
�fdKe
jx�fdLdM�ZydNdO�ZzdPdQ�Z{dRdS�Z|dTdU�Z}GdVdW�dWev�Z~dS)[zH
Support for installing and building the "wheel" binary package format.
�)�absolute_importN)�urlsafe_b64encode)�Parser)�
pkg_resources)�ScriptMaker)�get_export_entry)�canonicalize_name)�StringIO)�
pep425tags)�InstallationError�InvalidWheelFilename�UnsupportedWheel)�distutils_scheme�get_major_minor_version)�Link)�
indent_log)�has_delete_marker_file)�captured_stdout�
ensure_dir�read_chunks)�make_setuptools_shim_args)�LOG_DIVIDER�call_subprocess�format_command_args�runner_with_spinner_message)�
TempDirectory)�MYPY_CHECK_RUNNING)�open_spinner)�unpack_file)�path_to_url)�Dict�List�Optional�Sequence�Mapping�Tuple�IO�Text�Any�Iterable�Callable�Set)�Requirement)�InstallRequirement)�RequirementPreparer)�
WheelCache)�	Pep425Tag.)�rcCstj�||��tjjd�S)N�/)�os�path�relpath�replace�sep)�src�p�r:�7/usr/lib/python3.8/site-packages/pip/_internal/wheel.py�normpathOsr<�c	CsRt��}d}t|d��.}t||d�D]}|t|�7}|�|�q$W5QRX||fS)z5Return (hash, length) for path using hashlib.sha256()r�rb)�size)�hashlibZsha256�openr�len�update)r4�	blocksize�h�length�f�blockr:r:r;�	hash_fileSsrIcCs6t||�\}}dt|����d��d�}|t|�fS)z?Return (encoded_digest, length) for path using hashlib.sha256()zsha256=�latin1�=)rIr�digest�decode�rstrip�str)r4rDrErFrLr:r:r;�rehash_s���rPcCs6tjddkri}d}nddi}d}t|||f|�S)Nr��b�newline�)�sys�version_inforA)�name�mode�nl�binr:r:r;�open_for_csvjsr[cCs|�d�}||d<d�|�S)zBReplace the Python tag in a wheel file name with a new value.
    �-���)�split�join)Z	wheelnameZnew_tag�partsr:r:r;�replace_python_tagus
rac	Cs�tj�|�r�t|d��R}|��}|�d�s8W5QR�dStj�t�	��}d|tj
�d�}|��}W5QRXt|d��}|�|�|�|�W5QRXdSdS)	zLReplace #!python with #!/path/to/python
    Return True if file was changed.r>s#!pythonFs#!�ascii�wbTN)
r3r4�isfilerA�readline�
startswithrU�
executable�encode�getfilesystemencoding�linesep�read�write)r4Zscript�	firstlineZexename�restr:r:r;�
fix_script~s

rozX^(?P<namever>(?P<name>.+?)(-(?P<ver>.+?))?)
                                \.dist-info$c
Cs�|�dd�}t�|�D]p}t�|�}|r|�d�|krttj�||d���6}|D]*}|�	��
�}|dkrPW5QR�dSqPW5QRXqdS)zP
    Return True if the extracted wheel in wheeldir should go into purelib.
    r\�_rW�WHEELzroot-is-purelib: trueTF)r6r3�listdir�dist_info_re�match�grouprAr4r_�lowerrN)rW�wheeldirZname_folded�itemrt�wheel�liner:r:r;�root_is_purelib�s
 r{c	s�tj�|�siifSt|��8}t�}|D]}|�|���|�d�q(|�d�W5QRXtj	�
|�}|�di�}|�di�}dd��t�fdd�|�
�D��}t�fd	d�|�
�D��}||fS)
N�
rZconsole_scriptsZgui_scriptscSst|��dd��d�S)zRget the string representation of EntryPoint, remove space and split
        on '='� rTrK)rOr6r^)�sr:r:r;�	_split_ep�sz"get_entrypoints.<locals>._split_epc3s|]}�|�VqdS�Nr:��.0�v�rr:r;�	<genexpr>�sz"get_entrypoints.<locals>.<genexpr>c3s|]}�|�VqdSr�r:r�r�r:r;r��s)r3r4�existsrAr	rl�strip�seekrZ
EntryPointZ	parse_map�get�dict�values)�filename�fp�datarzZentry_points�console�guir:r�r;�get_entrypoints�s
r�csJ|sdSt�t�}|D]*}tj�|�}tj�|�}||�|�qdd�tj�	dd��
tj�D����tj�
tj�tj����fdd�|��D�}|s�dSg}|��D]b\}}t|�}t|�dkr�d	�|d
�}	n$d�d�|dd
��d|d
�}	|�d�|	|��q�d}
t|�dk�r0|�|
�d��n|�|
�d��d�|�S)z�Determine if any scripts are not on PATH and format a warning.

    Returns a warning message if one or more scripts are not on PATH,
    otherwise None.
    NcSs g|]}tj�|��tj��qSr:)r3r4�normcaserNr7)r��ir:r:r;�
<listcomp>�sz5message_about_scripts_not_on_PATH.<locals>.<listcomp>�PATHrTcs&i|]\}}tj�|��kr||�qSr:)r3r4r�)r��
parent_dir�scripts�Z
not_warn_dirsr:r;�
<dictcomp>�s�z5message_about_scripts_not_on_PATH.<locals>.<dictcomp>r1zscript {} isrzscripts {} are�, ���z and z.The {} installed in '{}' which is not on PATH.zeConsider adding {} to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.zthis directoryzthese directoriesr|)�collections�defaultdict�setr3r4�dirname�basename�add�environr�r^�pathsep�appendr�rUrg�items�sortedrB�formatr_)r�Zgrouped_by_dir�destfiler�Zscript_nameZwarn_for�	msg_linesZdir_scriptsZsorted_scriptsZ
start_textZ
last_line_fmtr:r�r;�!message_about_scripts_not_on_PATH�sH
�
�����r�cCst|dd�d�S)a;
    Return the given rows of a RECORD file in sorted order.

    Each row is a 3-tuple (path, hash, size) and corresponds to a record of
    a RECORD file (see PEP 376 and PEP 427 for details).  For the rows
    passed to this function, the size can be an integer as an int or string,
    or the empty string.
    cSstdd�|D��S)Ncss|]}t|�VqdSr�)rO)r��xr:r:r;r�sz3sorted_outrows.<locals>.<lambda>.<locals>.<genexpr>)�tuple)�rowr:r:r;�<lambda>�z sorted_outrows.<locals>.<lambda>)�key)r�)�outrowsr:r:r;�sorted_outrowssr�cCs�g}|D]v}t|�dkr(t�d�|��t|�}|d}|�||�}||d<||krpt|�\}	}
|	|d<|
|d<|�t|��q|D]*}t|�\}	}
|�t	||�|	t
|
�f�q�|D]}|�||ddf�q�|S)z_
    :param installed: A map from archive RECORD path to installation RECORD
        path.
    rQz,RECORD line has more than three elements: {}rr1�rT)rB�logger�warningr��list�poprPr�r�r<rO)Zold_csv_rows�	installed�changed�	generated�lib_dirZinstalled_rowsr�Zold_path�new_pathrLrFrGr:r:r;�get_csv_rows_for_installeds*�r�c@seZdZdS)�MissingCallableSuffixN)�__name__�
__module__�__qualname__r:r:r:r;r�=sr�cCs*t|�}|dk	r&|jdkr&tt|���dSr�)r�suffixr�rO)�
specification�entryr:r:r;�_raise_for_invalid_entrypointAsr�cseZdZd�fdd�	Z�ZS)�PipScriptMakerNcst|�tt|��||�Sr�)r��superr��make)�selfr�Zoptions��	__class__r:r;r�HszPipScriptMaker.make)N)r�r�r�r��
__classcell__r:r:r�r;r�Gsr�FTc-
s\|st||||||	d�}t|�	�r,|d�n|d�g�g��	�tjj�tjj}i�t��g}|r�t��4}
t�	�� t�
d�tj|ddd�W5QRXW5QRXt
�|
���d.����	fdd	�	�d/����fdd�	}||�d��s�td
���tj��dd�}t|�\����fdd�}�D]j}d
}d
}t�tj��	|��D]F}d
}|dk�r`t}|}tj��	||�}||}|||d||d��qF�q&td
|d�}d|_dh|_d|_g}��dd
�}|�rDdtjk�r�|�d|�tj�dd�dk�r|�dtjd|f�|�dt�|f�dd��D�}|D]}�|=�q6��dd
�}|�r�dtjk�rp|�d|�|�dt�|f�dd��D�}|D]}�|=�q�|� d d!���!�D��d"d���!�D�}g}z.|�"|�}|� |�|� |�"|d#di��Wn>t#k
�r>}z|j$d} t%d$�&| ����W5d
}~XYnX|
�rbt'|�}!|!d
k	�rbt
�(|!�tj��dd%�}"tj��dd&�}#t)|#d'��}$|$�*d(�W5QRXt+�,|#|"�|�|"�tj��dd)�}%tj��dd*�}&t-|%d+��\}'t-|&d,��F}(t.�/|'�})t0|)��|�d-�}*t.�1|(�}+t2|*�D]},|+�3|,��q&W5QRXW5QRXt+�,|&|%�d
S)0zInstall a wheel)�user�home�root�isolated�prefixZpurelibZplatlib�ignoreT)�force�quietFcs.t|��}t|��}|�|<|r*��|�dS)z6Map archive RECORD paths to installation RECORD paths.N)r<r�)�srcfiler�ZmodifiedZoldpath�newpath)r�r�r�rwr:r;�record_installeds


z*move_wheel_files.<locals>.record_installedNcs�t|�t�|�D�]�\}}}|t|�d��tjj�}tj�||�}	|rf|�tjjd�d�	d�rfq|D]�}
tj�|||
�}|r�|dkr�|�	d�r���
|
�qjqj|rj|
�	d�rjt|
��t�j
��rj�r�td|dd�������
|�qj|D]�}|�r||��rq�tj�||�}
tj�|||�}t|	�tj�|��rFt�|�t�|
|�t�|
�}ttd��r|t�||j|jf�t�|
tj��r�t�|
�}|jtjBtjBtjB}t�||�d	}|�r�||�}�|
||�q�qdS)
Nr1rz.datarTz
.dist-infoz!Multiple .dist-info directories: r��utimeF)rr3�walkrB�lstripr4r7r_r^�endswithr�rrfrW�AssertionErrorr��unlink�shutilZcopyfile�stat�hasattrr��st_atime�st_mtime�access�X_OK�st_mode�S_IXUSR�S_IXGRP�S_IXOTH�chmod)�source�destZis_base�fixer�filter�dirZsubdirs�filesZbasedirZdestdirr~Z
destsubdirrGr�r��stZpermissionsr�)�	data_dirs�info_dirr��reqr:r;�clobber�s^
������



�z!move_wheel_files.<locals>.clobberz!%s .dist-info directory not foundrzentry_points.txtcsh|���d�r|dd�}n<|���d�r8|dd�}n |���d�rT|dd�}n|}|�kpf|�kS)Nz.exe���z
-script.pyi����z.pya)rvr�)rWZ	matchname)r�r�r:r;�is_entrypoint_wrapper�sz/move_wheel_files.<locals>.is_entrypoint_wrapperr�)r�r�rTZpipZENSUREPIP_OPTIONSzpip = Z
altinstallz
pip%s = %scSsg|]}t�d|�r|�qS)zpip(\d(\.\d)?)?$��rert�r��kr:r:r;r�0sz$move_wheel_files.<locals>.<listcomp>Zeasy_installzeasy_install = zeasy_install-%s = %scSsg|]}t�d|�r|�qS)zeasy_install(-\d\.\d)?$r�r�r:r:r;r�@scss|]}d|VqdS)�%s = %sNr:�r�Zkvr:r:r;r�Gsz#move_wheel_files.<locals>.<genexpr>cSsg|]}d|�qS)r�r:r�r:r:r;r�Ksr�z�Invalid script entry point: {} for req: {} - A callable suffix is required. Cf https://packaging.python.org/en/latest/distributing.html#console-scripts for more information.Z	INSTALLERz
INSTALLER.piprcspip
ZRECORDz
RECORD.pip�rzw+)r�r�r�r�)F)NN)4rr{rNr3r4r7r�r�warnings�catch_warnings�filterwarnings�
compileall�compile_dirr��debug�getvaluer�r_r�rrror�r�ZvariantsZset_moder�r�r�r�rUrVr�extendr�Z
make_multipler��argsrr�r�r�rArlr��mover[�csv�readerr��writerr�Zwriterow)-rWr�rwr�r�r�Z	pycompileZschemer�r�Zwarn_script_locationr�r��stdoutr�Zep_filer�Zdatadirr�r�Zsubdirr�ZmakerZscripts_to_generateZ
pip_scriptZpip_epr�Zeasy_install_scriptZeasy_install_epZgui_scripts_to_generateZgenerated_console_scripts�er��msgZ	installerZtemp_installerZinstaller_file�recordZtemp_recordZ	record_inZ
record_outr	r�r
r�r:)
r�r�r�r�r�r�r�r�r�rwr;�move_wheel_filesMs��



$F
#��
����

��

�
��



�
"rcCsrzVdd�t�d|�D�d}|�d�}t��|�}|d��}ttt|�	d���}|WSt
k
rlYdSXdS)z�
    Return the Wheel-Version of an extracted wheel, if possible.

    Otherwise, return None if we couldn't parse / extract it.
    cSsg|]}|�qSr:r:)r��dr:r:r;r��sz!wheel_version.<locals>.<listcomp>Nrrqz
Wheel-Version�.)rZfind_on_pathZget_metadatarZparsestrr�r��map�intr^�	Exception)�
source_dirZdistZ
wheel_data�versionr:r:r;�
wheel_versions
rcCsb|std|��|dtdkr>td|d�tt|��f��n |tkr^t�dd�tt|���dS)a�
    Raises errors or warns if called with an incompatible Wheel-Version.

    Pip should refuse to install a Wheel-Version that's a major series
    ahead of what it's compatible with (e.g 2.0 > 1.1); and warn when
    installing a version only minor version ahead (e.g 1.2 > 1.1).

    version: a 2-tuple representing a Wheel-Version (Major, Minor)
    name: name of wheel or package to raise exception about

    :raises UnsupportedWheel: when an incompatible Wheel-Version is given
    z(%s is in an unsupported or invalid wheelrzB%s's Wheel-Version (%s) is not compatible with this version of piprz*Installing from a newer Wheel-Version (%s)N)r
�VERSION_COMPATIBLEr_rrOr�r�)rrWr:r:r;�check_compatibility�s����rcCs
d�|�S)z�
    Format three tags in the form "<python_tag>-<abi_tag>-<platform_tag>".

    :param file_tag: A 3-tuple of tags (python_tag, abi_tag, platform_tag).
    r\)r_)Zfile_tagr:r:r;�
format_tag�src@s>eZdZdZe�dej�Zdd�Zdd�Z	dd�Z
d	d
�ZdS)�WheelzA wheel filez�^(?P<namever>(?P<name>.+?)-(?P<ver>.*?))
        ((-(?P<build>\d[^-]*?))?-(?P<pyver>.+?)-(?P<abi>.+?)-(?P<plat>.+?)
        \.whl|\.dist-info)$cs��j�|�}|std|��|�_|�d��dd��_|�d��dd��_|�d��_|�d��	d��_
|�d	��	d��_|�d
��	d��_�fdd��j
D��_
d
S)zX
        :raises InvalidWheelFilename: when the filename is invalid for a wheel
        z!%s is not a valid wheel filename.rWrpr\Zver�buildZpyverrZabiZplatcs.h|]&}�jD]}�jD]}|||f�qqqSr:)�abis�plats)r�r��y�z�r�r:r;�	<setcomp>�s�z!Wheel.__init__.<locals>.<setcomp>N)�
wheel_file_rertrr�rur6rWrZ	build_tagr^Z
pyversionsrr�	file_tags)r�r�Z
wheel_infor:r!r;�__init__�s�
�zWheel.__init__cCstdd�|jD��S)zF
        Return the wheel's tags as a sorted list of strings.
        css|]}t|�VqdSr�)r�r��tagr:r:r;r��sz0Wheel.get_formatted_file_tags.<locals>.<genexpr>)r�r$r!r:r:r;�get_formatted_file_tags�szWheel.get_formatted_file_tagscst�fdd�|jD��S)a�
        Return the lowest index that one of the wheel's file_tag combinations
        achieves in the given list of supported tags.

        For example, if there are 8 supported tags and one of the file tags
        is first in the list, then return 0.

        :param tags: the PEP 425 tags to check the wheel against, in order
            with most preferred first.

        :raises ValueError: If none of the wheel's file tags match one of
            the supported tags.
        c3s |]}|�kr��|�VqdSr�)�indexr&��tagsr:r;r��sz*Wheel.support_index_min.<locals>.<genexpr>)�minr$�r�r+r:r*r;�support_index_min�szWheel.support_index_mincCs|j�|�S)z�
        Return whether the wheel is compatible with one of the given tags.

        :param tags: the PEP 425 tags to check the wheel against.
        )r$�
isdisjointr-r:r:r;�	supported�szWheel.supportedN)r�r�r��__doc__r��compile�VERBOSEr#r%r(r.r0r:r:r:r;r�s�rz([a-z0-9_.]+)-([a-z0-9_.!+-]+)cCst|�|��S)zjDetermine whether the string looks like an egg_info.

    :param s: The string to parse. E.g. foo-2.1
    )�bool�search)r~Z_egg_info_rer:r:r;�_contains_egg_infosr6cCs�|jr
dS|jr&|s"t�d|j�dS|s.dS|js:|js>dS||�sXt�d|j�dS|jrj|jjrjdS|j}|�	�\}}|r�t
|�r�dSdS)a[
    Return whether to build an InstallRequirement object using the
    ephemeral cache.

    :param cache_available: whether a cache directory is available for the
        should_unpack=True case.

    :return: True or False to build the requirement with ephem_cache=True
        or False, respectively; or None not to build the requirement.
    Nz(Skipping %s, due to already being wheel.FzCSkipping wheel build for %s, due to binaries being disabled for it.T)Z
constraint�is_wheelr��inforWZeditabler�linkZis_vcs�splitextr6)r��
should_unpack�cache_available�check_binary_allowedr9�baseZextr:r:r;�should_use_ephemeral_cache
s4��r?cCs^t|�}d�|�}|s |d7}n:t��tjkr8|d7}n"|�d�sJ|d7}|d�|t�7}|S)z1
    Format command information for logging.
    zCommand arguments: {}
zCommand output: Nonez'Command output: [use --verbose to show]r|zCommand output:
{}{})rr�r�ZgetEffectiveLevel�logging�DEBUGr�r)�command_args�command_outputZcommand_desc�textr:r:r;�format_command_resultGs



rEcCsxt|�}|s4d�|j�}|t||�7}t�|�dSt|�dkrfd�|j|�}|t||�7}t�|�tj�	||d�S)zH
    Return the path to the wheel in the temporary build directory.
    z1Legacy build of wheel for {!r} created no files.
Nr1zZLegacy build of wheel for {!r} created more than one file.
Filenames (choosing first): {}
r)
r�r�rWrEr�r�rBr3r4r_)�names�temp_dirr�rBrCr
r:r:r;�get_legacy_build_wheel_path^s$��
��
rHcCsdS)NTr:)rpr:r:r;�_always_true~srIc@s\eZdZdZddd�Zddd�Zddd	�Zd
d�Zddd
�Zddd�Z	dd�Z
ddd�ZdS)�WheelBuilderz#Build wheels from a RequirementSet.NFcCsD|dkrt}||_||_|j|_|p&g|_|p0g|_||_||_dSr�)	rI�preparer�wheel_cacheZwheel_download_dir�
_wheel_dir�
build_options�global_optionsr=�no_clean)r�rKrLrNrOr=rPr:r:r;r%�s


zWheelBuilder.__init__c
Cs.|j�|j|||d�W5QR�SQRXdS)ziBuild one wheel.

        :return: The filename of the built wheel, or None if the build failed.
        ��
python_tagN)Z	build_env�_build_one_inside_env)r�r��
output_dirrRr:r:r;�
_build_one�s�zWheelBuilder._build_onec
Cs�tdd���}|jr|j}n|j}|||j|d�}|dk	r�tj�|�}tj�||�}zNt|�\}	}
t	�
||�t�d|j
||
|	���t�d|�|WW5QR�Stk
r�YnX|�|�W5QR�dSQRXdS)Nry)ZkindrQz3Created wheel for %s: filename=%s size=%d sha256=%szStored in directory: %s)rZ
use_pep517�_build_one_pep517�_build_one_legacyr4r3r�r_rIr�rr�r8rWZ	hexdigestr�
_clean_one)r�r�rTrRrGZbuilder�
wheel_path�
wheel_nameZ	dest_pathZ
wheel_hashrFr:r:r;rS�s.�
z"WheelBuilder._build_one_inside_envcCst|j|jdd�S)NT)rOZunbuffered_output)rZ
setup_py_pathrO)r�r�r:r:r;�_base_setup_args�s
�zWheelBuilder._base_setup_argsc	Cs�|jdk	st�|jr*t�d|jf�dSz~t�d|�td�|j��}|j	}|�
|��|j||jd�}W5QRX|r�t||�}t
�t
j�||�t
j�||��|}Wn$tk
r�t�d|j�YdSXt
j�||�S)z�Build one InstallRequirement using the PEP 517 build process.

        Returns path to wheel if successfully built. Otherwise, returns None.
        NzGCannot build wheel for %s using PEP 517 when --build-options is present�Destination directory: %szBuilding wheel for {} (PEP 517))�metadata_directory�Failed building wheel for %s)r]r�rNr��errorrWrrr�Zpep517_backendZsubprocess_runnerZbuild_wheelrar3�renamer4r_r)r�r��tempdrRZrunnerZbackendrZ�new_namer:r:r;rV�s8�
��
�zWheelBuilder._build_one_pep517c
Cs�|�|�}d|jf}t|���}t�d|�|dd|g|j}|dk	rT|d|g7}zt||j|d�}Wn8tk
r�|�	d�t�
d	|j�YW5QR�dSXt�|�}	t
|	||||d
�}
|
W5QR�SQRXdS)z�Build one InstallRequirement using the "legacy" build process.

        Returns path to wheel if successfully built. Otherwise, returns None.
        z Building wheel for %s (setup.py)r\Zbdist_wheelz-dNz--python-tag)�cwd�spinnerr_r^)rFrGr�rBrC)r[rWrr�rrNrZunpacked_source_directoryrZfinishr_r3rrrH)r�r�rarR�	base_argsZspin_messagerdZ
wheel_args�outputrFrYr:r:r;rW�s8

��


�zWheelBuilder._build_one_legacycCsb|�|�}t�d|j�|ddg}zt||jd�WdStk
r\t�d|j�YdSXdS)NzRunning setup.py clean for %sZcleanz--all)rcTz Failed cleaning build dir for %sF)r[r�r8rWrrrr_)r�r�reZ
clean_argsr:r:r;rXs
zWheelBuilder._clean_onec
Cs|r
|jr|s|jst�g}t|jj�}|D]\}t||||jd�}|dkrLq,|rt|rd|j�|j�}qz|j�	|j�}n|j}|�
||f�q,|s�gSt�dd�
dd�|D���d}|r�tj}t���gg}	}
|D]�\}}zt|�WnFtk
�r.}z&t�d|j|�|
�
|�WY�q�W5d}~XYnX|j|||d�}|�r�|	�
|�|�r�|j�rrt|j��srtd	��|��|�|jj�|_tt|��|_|jj�s�t�t|jj |j�q�|
�
|�q�W5QRX|	�r�t�d
d�
dd�|	D���|
�rt�d
d�
dd�|
D���|
S)aBuild wheels.

        :param should_unpack: If True, after building the wheel, unpack it
            and replace the sdist with the unpacked version in preparation
            for installation.
        :return: True if all the wheels built correctly.
        )r;r<r=Nz*Building wheels for collected packages: %sr�cSsg|]\}}|j�qSr:�rW)r�r�rpr:r:r;r�\sz&WheelBuilder.build.<locals>.<listcomp>z Building wheel for %s failed: %srQzbad source dir - missing markerzSuccessfully built %sr}cSsg|]
}|j�qSr:rg�r�r�r:r:r;r��szFailed to build %scSsg|]
}|j�qSr:rgrhr:r:r;r��s)!rMr�r4rL�	cache_dirr?r=Zget_ephem_path_for_linkr9Zget_path_for_linkr�r�r8r_r
Zimplementation_tagrr�OSErrorr�rWrUrrZremove_temporary_sourceZensure_build_locationrKZ	build_dirrrr7rZ	file_path)
r�Zrequirementsr;Zbuildsetr<r�Zephem_cacherTrRZ
build_successZ
build_failurerZ
wheel_filer:r:r;r#s��������

�
�
������zWheelBuilder.build)NNNF)N)N)N)N)F)r�r�r�r1r%rUrSr[rVrWrXrr:r:r:r;rJ�s�




'
%�rJ)r=)r=)FNNTNFNT)r1Z
__future__rr�rrr@r@Zos.pathr3r�r�r�rUr��base64rZemail.parserrZpip._vendorrZpip._vendor.distlib.scriptsrZpip._vendor.distlib.utilrZpip._vendor.packaging.utilsrZpip._vendor.sixr	Z
pip._internalr
Zpip._internal.exceptionsrrr
Zpip._internal.locationsrrZpip._internal.models.linkrZpip._internal.utils.loggingrZ pip._internal.utils.marker_filesrZpip._internal.utils.miscrrrZ$pip._internal.utils.setuptools_buildrZpip._internal.utils.subprocessrrrrZpip._internal.utils.temp_dirrZpip._internal.utils.typingrZpip._internal.utils.uirZpip._internal.utils.unpackingrZpip._internal.utils.urlsr�typingr r!r"r#r$r%r&r'r(r)r*r+Z"pip._vendor.packaging.requirementsr,Zpip._internal.req.req_installr-Z pip._internal.operations.preparer.Zpip._internal.cacher/Zpip._internal.pep425tagsr0rOZInstalledCSVRowr4ZBinaryAllowedPredicaterZ	getLoggerr�r�r<rIrPr[raror2r3rsr{r�r�r�r�rr�r�r�rrrr�objectr�Ir6r?rErHrIrJr:r:r:r;�<module>s�8


	� =$
�
4
J�
	: 

ZeroDay Forums Mini