U
��.e] � @ s d Z ddlZddlZddlZddlZddlmZ ddlmZ ddl m
Z
ddlmZm
Z
mZ ddlmZ ddlmZ dd lmZ dd
lmZ ddlmZ er�ddlmZmZmZmZmZ dd
l m!Z! e�"e#�Z$G dd� d�Z%G dd� de&�Z'G dd� de'�Z(dS )z;Build Environment used for isolation during sdist building
� N)�OrderedDict)�get_python_lib)� get_paths)�Requirement�VersionConflict�
WorkingSet)�__file__)�call_subprocess)�
TempDirectory)�MYPY_CHECK_RUNNING)�open_spinner)�Tuple�Set�Iterable�Optional�List)�
PackageFinderc @ s e Zd Zdd� ZdS )�_Prefixc C sj || _ d| _ttjdkrdnd||d�d�d | _td|d�}td|d�}||kr\|g| _n
||g| _d S ) NF�ntZposix_prefix)�baseZplatbase)�varsZscripts)�
plat_specific�prefixT)�path�setupr �os�name�bin_dirr �lib_dirs)�selfr ZpurelibZplatlib� r �;/usr/lib/python3.8/site-packages/pip/_internal/build_env.py�__init__! s ��
z_Prefix.__init__N)�__name__�
__module__�__qualname__r" r r r r! r s r c @ s@ e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
d� Zdd
� Z dS )�BuildEnvironmentzFCreates and manages an isolated environment to install build deps
c s� t dd�� _t� fdd�dD ��� _g � _g � _tt� j�� ��D ] }� j� |j
� � j�|j� qBdd� t
dd �t
d
d �fD �}tj�� jjd�� _tj�� j�s�t�� j� ttj�� jd�d
��"}|�t�d�j|� jd�� W 5 Q R X d S )Nz build-env)Zkindc 3 s( | ] }|t tj�� jj|��fV qd S �N)r r r �join� _temp_dir��.0r �r r r! �