관리-도구
편집 파일: pyproject.cpython-36.pyc
3 �Re� � @ 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 ddddg�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 �string_types)�.0�item� r ��/builddir/build/BUILDROOT/alt-python36-pip-20.2.4-5.el8.x86_64/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/pyproject.py� <genexpr> s z"_is_list_of_str.<locals>.<genexpr>)r �list�all)�objr r r �_is_list_of_str s r c C s2 t jj| d�}tjr.t|tj�r.|jtj � �}|S )Nzpyproject.toml) �os�path�joinr �PY2r � text_type�encode�sys�getfilesystemencoding)�unpacked_source_directoryr r r r �make_pyproject_path s r! �BuildSystemDetails�requires�backend�check�backend_pathc C s� t jj|�}t jj|�}|rLtj|dd��}tj|�}W dQ R X |jd�}nd}|rv| rv| dk rp| rptd��d} n>|r�d|kr�| dk r�| r�tdj |d ���d} n| dkr�|} | dk s�t �| s�dS |dkr�d d gdd�}|dk s�t �d } d|k�r t| j |dd���|d } t| ��s.t| j |dd���xJ| D ]B}yt|� W n. t k �rr t| j |dj |�d���Y nX �q4W |jd�}|jdg �} g }|dk�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.pyTz 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# z build-backendzO{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 �format�AssertionErrorr r r r"