File: //opt/osm/venv/lib/python3.10/site-packages/pip/_internal/__pycache__/pyproject.cpython-310.pyc
o
5i� � @ s� d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dl m
Z
mZmZ d dl
mZ d dlmZ dd
d�Zddd�Zedg d��Zddd�ZdS )� )�annotationsN)�
namedtuple)�Any)�InvalidRequirement)�InstallationError�InvalidPyProjectBuildRequires�MissingPyProjectBuildRequires)�tomllib)�get_requirement�objr �return�boolc C s t | t�o
tdd� | D ��S )Nc s s � | ]}t |t�V qd S )N)�
isinstance�str)�.0�item� r �E/opt/osm/venv/lib/python3.10/site-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_directoryr c 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�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}|du rHdgdd�}d |vrQt |d
��|d }t
|�s_t|dd��|D ]} zt| � W qa t
y }
z
t|d
| ��d�|
�d}
~
ww |�d�}|�dg �}g }
|du r�d}dg}
t|||
|�S )a� Load the pyproject.toml file.
Parameters:
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-systemzsetuptools>=40.8.0z setuptools.build_meta:__legacy__)r �
build-backendr )�packagezIt is not a list of strings.)r'