U
ʗRe @ s d dl Zd dlZd dlmZ d dlmZmZmZ d dl m
Z
d dlmZm
Z
d dlmZmZmZ eeddd Zeed
ddZed
ddddgZee eeeee dddZdS ) N)
namedtuple)AnyListOptional)tomli)InvalidRequirementRequirement)InstallationErrorInvalidPyProjectBuildRequiresMissingPyProjectBuildRequires)objreturnc C s t | totdd | D S )Nc s s | ]}t |tV qd S )N)
isinstancestr).0item r /builddir/build/BUILDROOT/alt-python38-pip-22.2.1-2.el8.x86_64/opt/alt/python38/lib/python3.8/site-packages/pip/_internal/pyproject.py s z"_is_list_of_str..)r listall)r r r r _is_list_of_str s r )unpacked_source_directoryr
c C s t j| dS )Nzpyproject.toml)ospathjoin)r r r r make_pyproject_path s r BuildSystemDetailsrequiresbackendcheckbackend_path)
use_pep517pyproject_tomlsetup_pyreq_namer
c C s t j|}t j|}|s.|s.t| d|rdt|dd}t| }W 5 Q R X |d}nd}|r|s| dk r| stdd} nJ|rd|kr| dk r| std |d d} n| dkr|pt
jd
} | dk st
| sdS |dkrddgd
d}|dk st
d|kr t|d|d } t| s>t|dd| D ]L}
zt|
W n8 tk
r } zt|d|
d|W 5 d}~X Y nX qB|d}|dg }
g }|dkrd
}ddg}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)encodingzbuild-systemNzIDisabling 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.toml
setuptoolszsetuptools>=40.8.0wheelz setuptools.build_meta:__legacy__)r r' r )packagezIt is not a list of strings.)r* reasonz$It contains an invalid requirement: zbackend-path)r r isfiler openr loadsreadgetformat importlibutil find_specAssertionErrorr r r
r r r )r" r# r$ r%
has_pyproject has_setupfpp_tomlbuild_systemr requirementerrorr r! r r r r load_pyproject_toml sx
r= )importlib.utilr2 r collectionsr typingr r r pip._vendorr "pip._vendor.packaging.requirementsr r pip._internal.exceptionsr r
r boolr r r r r= r r r r s$