File: //usr/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/wheel.cpython-39.pyc
a
?�f � @ s� d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ d dl m
Z
mZ d dlm
Z
d dlmZ d dlmZ d d lmZmZ d d
lmZ d dlmZ d dlmZmZ er�d d
lmZ d dlmZ e� e!�Z"G dd� de
�Z#dS )� )�absolute_importN)�
WheelCache)�
cmdoptions)�RequirementCommand�with_cleanup)�SUCCESS)�CommandError)�get_requirement_tracker)�
ensure_dir�normalize_path)�
TempDirectory)�MYPY_CHECK_RUNNING)�build�should_build_for_wheel_command)�Values)�Listc @ s( e Zd ZdZdZdd� Zedd� �ZdS )�WheelCommanda�
Build Wheel archives for your requirements and dependencies.
Wheel is a built-package format, and offers the advantage of not
recompiling your software during every install. For more details, see the
wheel docs: https://wheel.readthedocs.io/en/latest/
Requirements: setuptools>=0.8, and wheel.
'pip wheel' uses the bdist_wheel setuptools extension from the wheel
package to build individual wheels.
z�
%prog [options] <requirement specifier> ...
%prog [options] -r <requirements file> ...
%prog [options] [-e] <vcs project url> ...
%prog [options] [-e] <local project path> ...
%prog [options] <archive url/path> ...c C s| | j jddddtjdd� | j �t�� � | j �t�� � | j �t�� � | j jddd d
dd� | j �t�� � | j �t� � � | j �t�
� � | j �t�� � | j �t�� � | j �t�
� � | j �t�� � | j �t�� � | j �t�� � | j �t�� � | j �t�� � | j jd
dd
d dd� | j jddddd� | j �t�� � t�tj| j�}| j�d|� | j�d| j � d S )Nz-wz--wheel-dir� wheel_dir�dirzLBuild wheels into <dir>, where the default is the current working directory.)�dest�metavar�default�helpz--build-option�
build_options�options�appendz9Extra arguments to be supplied to 'setup.py bdist_wheel'.)r r �actionr z--global-option�global_optionszZExtra global options to be supplied to the setup.py call before the 'bdist_wheel' command.)r r r r z--pre�
store_trueFzYInclude pre-release and development versions. By default, pip only finds stable versions.)r r r r )Zcmd_optsZ
add_option�os�curdirr Z no_binaryZonly_binaryZ
prefer_binaryZno_build_isolation�
use_pep517Z
no_use_pep517�constraintsZeditable�requirements�src�ignore_requires_pythonZno_deps� build_dirZprogress_barZrequire_hashesZmake_option_groupZindex_group�parserZinsert_option_group)�selfZ
index_opts� r) �@/usr/lib/python3.9/site-packages/pip/_internal/commands/wheel.py�add_options2 s` �����zWheelCommand.add_optionsc C s� t �|� | �|�}| �||�}|jp*|j }t|j|j�}t |j
�|_
t|j
� | �t
� �}t|j|ddd�}| �||||�} | j||||||j
dd�}
| j|
||||j|jd�}| �|� |j| dd�}dd � |j�� D �}
t|
||jp�g |jp�g d
�\}}|D ]~}|j�r|jj�sJ �|j�s*J �zt�|j|j
� W n@ t �y~ } z&t!�"d|j#|� |�$|� W Y d }~n
d }~0 0 �qt%|�dk�r�t&d
��t'S )NZwheelT)�delete�kindZglobally_managedF)Ztemp_build_dirr �req_tracker�session�finderZwheel_download_dirZ
use_user_site)�preparerr0 r �wheel_cacher% r! )Zcheck_supported_wheelsc S s g | ]}t |�r|�qS r) )r )�.0�rr) r) r* �
<listcomp>� s �z$WheelCommand.run.<locals>.<listcomp>)r2 r r z Building wheel for %s failed: %sr z"Failed to build one or more wheels)(r Zcheck_install_build_globalZget_default_sessionZ_build_package_finderZno_cleanr&