/usr/local/lib/python3.9/site-packages/pip/_internal/distributions/__pycache__
a ���h( � @ s� d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dl m Z d dlmZ d dl mZ d d lmZ erxd d lmZ e�e�ZG dd� de �ZdS ) � )�annotationsN)�Iterable)� TYPE_CHECKING)�BuildEnvironment)�AbstractDistribution)�InstallationError)�BaseDistribution)�runner_with_spinner_message)�BuildEnvironmentInstallerc @ s� e Zd ZdZedd�dd��Zdd�dd�Zd d d dd�d d�Zd dd�dd�Zdd�dd�Z dd�dd�Z d dd�dd�Zdddd�dd�Zddd�d d!�Z d"S )#�SourceDistributionz�Represents a source distribution. The preparation step for these needs metadata for the packages to be generated, either using PEP 517 or using the legacy `setup.py egg_info`. z str | None)�returnc C s | j jsJ �| j jjS )z/Identify this requirement uniquely by its link.)�req�link�url_without_fragment��self� r �K/usr/local/lib/python3.9/site-packages/pip/_internal/distributions/sdist.py�build_tracker_id s z#SourceDistribution.build_tracker_idr c C s | j �� S )N)r �get_distr r r r �get_metadata_distribution s z,SourceDistribution.get_metadata_distributionr �bool�None)�build_env_installer�build_isolation�check_build_depsr c C s� | j �� | j jo|}|r8| �|� | j �� | �|� | j joB|}|r�| j j}|d us\J �| j j�|�\}}|r~| � d|� |r�| � |� | j �� d S )N�the backend dependencies)r �load_pyproject_toml� use_pep517�_prepare_build_backend�isolated_editable_sanity_check�_install_build_reqs�pyproject_requires� build_env�check_requirements�_raise_conflicts�_raise_missing_reqs�prepare_metadata) r r r r �should_isolateZshould_check_depsr"