Current File : //lib/python3.9/site-packages/pip/_internal/distributions/__pycache__/sdist.cpython-39.pyc
a

[��f��@s�ddlZddlmZmZmZddlmZddlmZddl	m
Z
ddlmZddl
mZddlmZe�e�ZGd	d
�d
e�ZdS)�N)�Iterable�Set�Tuple)�BuildEnvironment)�AbstractDistribution)�InstallationError)�
PackageFinder)�BaseDistribution)�runner_with_spinner_messagec@s�eZdZdZed�dd�Zeedd�dd�Zedd	�d
d�Z	e
ed�dd
�Ze
ed�dd�Z
edd	�dd�Zeeeeefdd�dd�ZdS)�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`.
    )�returncCsddlm}||j���S)Nr)�Distribution)Z$pip._internal.metadata.pkg_resourcesr
�reqZget_dist)�selfZ_Dist�r�E/usr/lib/python3.9/site-packages/pip/_internal/distributions/sdist.py�get_metadata_distributionsz,SourceDistribution.get_metadata_distributionN)�finder�build_isolationrcCsF|j��|jjo|}|r8|�|�|j��|�|�|j��dS)N)rZload_pyproject_tomlZ
use_pep517�_prepare_build_backendZisolated_editable_sanity_check�_install_build_reqsZprepare_metadata)rrrZshould_isolaterrr�prepare_distribution_metadatas



z0SourceDistribution.prepare_distribution_metadata)rrc	Cs�|jj}|dusJ�t�|j_|jj�||dd�|jj�|jj�\}}|rX|�d|�|r�t�	d|j�t�	dd�
ttt
|����dS)NZoverlayzInstalling 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_env�install_requirements�check_requirementsZrequirements_to_check�_raise_conflicts�loggerZwarning�join�map�repr�sorted)rrr�conflicting�missingrrrr3s(
����z)SourceDistribution._prepare_build_backendc	Cs�|jj�ltd�}|jj}|dus&J�|�|��&|��Wd�Wd�S1s\0YWd�n1sz0YdS)Nz#Getting requirements to build wheel)rrr
�pep517_backend�subprocess_runnerZget_requires_for_build_wheel�rZrunnerZbackendrrr�_get_build_requires_wheelMs
z,SourceDistribution._get_build_requires_wheelc	Cs�|jj�ltd�}|jj}|dus&J�|�|��&|��Wd�Wd�S1s\0YWd�n1sz0YdS)Nz&Getting requirements to build editable)rrr
r$r%Zget_requires_for_build_editabler&rrr�_get_build_requires_editableUs
�z/SourceDistribution._get_build_requires_editablecCsf|jjr$|jjr$|j��r$|��}n|��}|jj�|�\}}|rN|�d|�|jj�	||dd�dS)Nzthe backend dependenciesZnormalzInstalling backend dependencies)
rZeditableZpermit_editable_wheelsZsupports_pyproject_editabler(r'rrrr)rrZ
build_reqsr"r#rrrr_s���
�z&SourceDistribution._install_build_reqs)�conflicting_with�conflicting_reqsrcCs6d}|j|j|d�dd�t|�D��d�}t|��dS)NzZSome build dependencies for {requirement} conflict with {conflicting_with}: {description}.z, css |]\}}|�d|��VqdS)z is incompatible with Nr)�.0Z	installedZwantedrrr�	<genexpr>|s�z6SourceDistribution._raise_conflicts.<locals>.<genexpr>)Zrequirementr)�description)�formatrrr!r)rr)r*�
format_stringZ
error_messagerrrrrs�
��z#SourceDistribution._raise_conflicts)�__name__�
__module__�__qualname__�__doc__r	rr�boolrrr�strr'r(rrrrrrrrrs�
�r)Zlogging�typingrrrZpip._internal.build_envrZ pip._internal.distributions.baserZpip._internal.exceptionsrZ"pip._internal.index.package_finderrZpip._internal.metadatar	Zpip._internal.utils.subprocessr
Z	getLoggerr0rrrrrr�<module>s