shell bypass 403
U
��.e � @ s� d dl mZ d dlZd dlZd dlmZ d dlmZ d dlm Z d dl
mZmZ d dl
mZ d dlmZ d d lmZ d d
lmZ d dlmZ er�d dlmZ d d
lmZmZ e�e�ZG dd� de �ZdS )� )�absolute_importN)�
WheelCache)�
cmdoptions)�RequirementCommand)�CommandError�PreviousBuildDirError)�RequirementSet)�RequirementTracker)�
TempDirectory)�MYPY_CHECK_RUNNING)�WheelBuilder)�Values)�Any�Listc s, e Zd ZdZdZ� fdd�Zdd� Z� ZS )�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 sz t t| �j||� | j}|jddddtjdd� |�t�� � |�t� � � |�t�
� � |jddd d
dd� |�t�� � |�t�� � |�t�
� � |�t�� � |�t�� � |�t�� � |�t�� � |�t�� � |�t�� � |�t�� � |�t�� � |jd
dd
d dd� |jddddd� |�t�� � |�t�� � t�tj| j�}| j�d|� | j�d|� 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 )�superr �__init__�cmd_optsZ
add_option�os�curdirr Z no_binaryZonly_binaryZ
prefer_binaryZno_build_isolation�
use_pep517Z
no_use_pep517ZconstraintsZeditable�requirements�src�ignore_requires_pythonZno_deps� build_dirZprogress_bar�no_clean�require_hashesZmake_option_groupZindex_group�parserZinsert_option_group)�self�args�kwr Z
index_opts�� __class__� �@/usr/lib/python3.8/site-packages/pip/_internal/commands/wheel.pyr 3 sh �����zWheelCommand.__init__c C sz t �|� |jr tj�|j�|_tj�|j�|_| �|�}| �||�}|j pP|j }t
|j|j�}t
� ��}t|j|dd���}t|jd�} z�z�| �| |||||� | j||||jd�}
| j|
|||||j|jd�}|�| � t|
||jp�g |jp�g |j d�}|�| j�� �}
t |
�dk�r"t!d��W n t"k
�rB d |_ � Y nX W 5 |j �s`| �� |�� X W 5 Q R X W 5 Q R X d S )
NZwheel)�deleteZkind)r( )Ztemp_build_dirr �req_trackerZwheel_download_dir)�preparer�finder�sessionr �wheel_cacher% r"