File: //lib/python3/dist-packages/pip/_internal/__pycache__/pyproject.cpython-310.pyc
o
@%NeB � @ s� d dl Z d dlmZ d dlmZmZmZ d dlmZ d dl m
Z
mZ d dlm
Z
mZmZ dedefd d
�Zdedefdd
�Zedg d��Zdee dedededee f
dd�ZdS )� N)�
namedtuple)�Any�List�Optional)�tomli)�InvalidRequirement�Requirement)�InstallationError�InvalidPyProjectBuildRequires�MissingPyProjectBuildRequires�obj�returnc C s t | t�o
tdd� | D ��S )Nc s s � | ]}t |t�V qd S )N)�
isinstance�str)�.0�item� r �9/usr/lib/python3/dist-packages/pip/_internal/pyproject.py� <genexpr> s � z"_is_list_of_str.<locals>.<genexpr>)r �list�all)r r r r �_is_list_of_str s r �unpacked_source_directoryc C s t j�| d�S )Nzpyproject.toml)�os�path�join)r r r r �make_pyproject_path s r �BuildSystemDetails)�requires�backend�check�backend_path�
use_pep517�pyproject_toml�setup_py�req_namec C s� t j�|�}t j�|�}|s|st|� d���|r<t|dd��}t�|�� �}W d � n1 s1w Y |�d�}nd}|rO|sO| durL| sLtd��d} n|rgd|v rg| durd| sdtd � |d ���d} n| du rm|} | dussJ �| swdS |du r�d
dgdd
�}|dus�J �d|vr�t
|d��|d } t| �s�t|dd��| D ]}
zt
|
� W q� ty� } z
t|d|
��d�|�d}~ww |�d�}|�dg �}
g }|du r�d}d
dg}t| |||
�S )aB Load the pyproject.toml file.
Parameters:
use_pep517 - Has the user requested PEP 517 processing? None
means the user hasn't explicitly specified.
pyproject_toml - Location of the project's pyproject.toml file
setup_py - Location of the project's setup.py file
req_name - The name of the requirement we're processing (for
error reporting)
Returns:
None if we should use the legacy code path, otherwise a tuple
(
requirements from pyproject.toml,
name of PEP 517 backend,
requirements we should check are installed after setting
up the build environment
directory paths to import the backend from (backend-path),
relative to the project root.
)
zW does not appear to be a Python project: neither 'setup.py' nor 'pyproject.toml' found.zutf-8)�encodingNzbuild-systemzIDisabling PEP 517 processing is invalid: project does not have a setup.pyT�
build-backendzbDisabling PEP 517 processing is invalid: project specifies a build backend of {} in pyproject.tomlzsetuptools>=40.8.0�wheelz setuptools.build_meta:__legacy__)r r'