File: //usr/lib/python3.9/site-packages/pip/_internal/__pycache__/pyproject.cpython-39.pyc
a
?�f� � @ s� d dl mZ d dlZd dlZd dlZd dlmZ d dlmZm Z d dl
mZmZ d dl
mZ d dlmZ er�d dlmZmZmZ d d
� Zdd� Zed
g d��Zdd� ZdS )� )�absolute_importN)�
namedtuple)�six�toml)�InvalidRequirement�Requirement)�InstallationError)�MYPY_CHECK_RUNNING)�Any�Optional�Listc C s t | t�otdd� | D ��S )Nc s s | ]}t |tj�V qd S )N)�
isinstancer Zstring_types)�.0�item� r �;/usr/lib/python3.9/site-packages/pip/_internal/pyproject.py� <genexpr> � z"_is_list_of_str.<locals>.<genexpr>)r
�list�all)�objr r r �_is_list_of_str s
�r c C s2 t j�| d�}tjr.t|tj�r.|�t� � �}|S )Nzpyproject.toml)
�os�path�joinr ZPY2r
Z text_type�encode�sys�getfilesystemencoding)Zunpacked_source_directoryr r r r �make_pyproject_path s r �BuildSystemDetails)�requires�backend�check�backend_pathc
C s� t j�|�}t j�|�}|r`tj|dd��}t�|�}W d � n1 sJ0 Y |�d�}nd}|r�|s�| dur�| s�td��d} n<|r�d|v r�| dur�| s�td� |d ���d} n| du r�|} | dus�J �| s�dS |du r�d d
gdd�}|dus�J �d
} d|v�rt| j |dd���|d }
t
|
��s<t| j |dd���|
D ]@}zt|� W n, t�y| t| j |d� |�d���Y n0 �q@|�d�}|�dg �}
g }|du �r�d}d d
g}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.
)
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.0Zwheelz setuptools.build_meta:__legacy__)r r% zO{package} has a pyproject.toml file that does not comply with PEP 518: {reason}r z]it has a 'build-system' table but not 'build-system.requires' which is mandatory in the table)�package�reasonz1'build-system.requires' is not a list of strings.z='build-system.requires' contains an invalid requirement: {!r}zbackend-path)r r �isfile�io�openr �load�getr �formatr r r r )Z
use_pep517Zpyproject_tomlZsetup_pyZreq_nameZ
has_pyprojectZ has_setup�fZpp_tomlZbuild_systemZerror_templater Zrequirementr! r# r"