a Re @ s d dl Z d dlmZmZmZ d dlmZ d dlmZ d dl m Z d dlmZ d dl mZ d dlmZ e eZG d d d eZdS ) N)IterableSetTuple)BuildEnvironment)AbstractDistribution)InstallationError) PackageFinder)BaseDistribution)runner_with_spinner_messagec @ s e Zd ZdZedddZeeddddZedd d dZ e e ddd Ze e dddZ edd ddZeeeeef ddddZdS )SourceDistributionzRepresents 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`. )returnc C s ddl m} || j S )Nr )Distribution)$pip._internal.metadata.pkg_resourcesr reqget_dist)self_Dist r /builddir/build/BUILDROOT/alt-python39-pip-21.3.1-2.el8.x86_64/opt/alt/python39/lib/python3.9/site-packages/pip/_internal/distributions/sdist.pyget_metadata_distribution s z,SourceDistribution.get_metadata_distributionN)finderbuild_isolationr c C sF | j | j jo|}|r8| | | j | | | j d S )N)r load_pyproject_toml use_pep517_prepare_build_backendisolated_editable_sanity_check_install_build_reqsprepare_metadata)r r r should_isolater r r prepare_distribution_metadata s z0SourceDistribution.prepare_distribution_metadata)r r c C s | j j}|d usJ t | j _| j j||dd | j j| j j\}}|rX| d| |rt d| j t dd ttt | d S )NoverlayzInstalling build dependenciesz"PEP 517/518 supported requirementsz4Missing build requirements in pyproject.toml for %s.z`The project does not specify a build backend, and pip cannot fall back to setuptools without %s.z and )r pyproject_requiresr build_envinstall_requirementscheck_requirementsrequirements_to_check_raise_conflictsloggerwarningjoinmapreprsorted)r r r! conflictingmissingr r r r 3 s( z)SourceDistribution._prepare_build_backendc C s | j jl td}| j j}|d us&J