관리-도구
편집 파일: pyproject.cpython-38.pyc
U ��.eZ � @ s� d dl mZ d dlZd dlZd dlZd dlmZmZ d dlm Z d dl mZ erhd dlm Z mZmZmZ dd� Zd d � Zdd� ZdS ) � )�absolute_importN)�pytoml�six)�InstallationError)�MYPY_CHECK_RUNNING)�Any�Tuple�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.8/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 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 c C sV t j�|�}t j�|�}|rLtj|dd��}t�|�}W 5 Q R X |�d�}nd}|rr|sr| dk rl| sltd��d} n<|r�d|kr�| dk r�| s�td� |d ���d} n| dkr�|} | dk s�t �| s�dS |dkr�d d gdd�}|dk s�t �d } d|k�rt| j |dd���|d } t| ��s(t| j |dd���|�d�}g }|dk�rLd}d d g}| ||fS )a� 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 ) 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.tomlzsetuptools>=40.8.0Zwheelz setuptools.build_meta:__legacy__)�requiresr 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.)r r �isfile�io�openr �load�getr �format�AssertionErrorr ) Z use_pep517Zpyproject_tomlZsetup_pyZreq_nameZ has_pyprojectZ has_setup�fZpp_tomlZbuild_systemZerror_templater ZbackendZcheckr r r �load_pyproject_toml# sf ��� � � �� � r) )Z __future__r r"