File: //lib/python3/dist-packages/pip/_internal/distributions/__pycache__/sdist.cpython-312.pyc
�
��h5 � � � d dl Z d dlmZmZmZmZ d dlmZ d dlm Z d dl
mZ d dlm
Z
d dlmZ d dlmZ e j$ e� Z G d � d
e � Zy)� N)�Iterable�Optional�Set�Tuple)�BuildEnvironment)�AbstractDistribution)�InstallationError)�
PackageFinder)�BaseDistribution)�runner_with_spinner_messagec �� � e Zd ZdZedee fd�� Zdefd�Z de
dededdfd �Zde
ddfd
�Z
dee fd�Zdee fd�Zde
ddfd
�Zdedeeeef ddfd�Zdee ddfd�Zy)�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`.
�returnc �r � | j j sJ �| j j j S )z/Identify this requirement uniquely by its link.)�req�link�url_without_fragment��selfs �C/usr/lib/python3/dist-packages/pip/_internal/distributions/sdist.py�build_tracker_idz#SourceDistribution.build_tracker_id s( � � �x�x�}�}��}��x�x�}�}�1�1�1� c �6 � | j j � S )N)r �get_distr s r �get_metadata_distributionz,SourceDistribution.get_metadata_distribution s � ��x�x� � �"�"r �finder�build_isolation�check_build_depsNc �& � | j j � | j j xr |}|r<| j |� | j j � | j |� | j j xr |}|ri| j j }|�J �| j j j |� \ }}|r| j d|� |r| j |� | j j � y )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_isolate�should_check_depsr&