3
g/                 @   s   d dl Z d dlmZ d dlmZmZmZ d dlmZ d dl	m
Z
mZ d dlmZ eeddd	Zeed
ddZedddddgZee eeeee dddZdS )    N)
namedtuple)AnyListOptional)tomli)InvalidRequirementRequirement)InstallationError)objreturnc             C   s   t | totdd | D S )Nc             s   s   | ]}t |tV  qd S )N)
isinstancestr).0item r   U/var/www/tester-filtro-web/env/lib/python3.6/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j| dS )Nzpyproject.toml)ospathjoin)r   r   r   r   make_pyproject_path   s    r   BuildSystemDetailsrequiresbackendcheckbackend_path)
use_pep517pyproject_tomlsetup_pyreq_namer   c             C   s  t jj|}t jj|}| r2| r2t| d|rdt|dd}tj|}W dQ R X |jd}nd}|r| r| dk	r|  rtdd} n>|rd|kr| dk	r|  rtd	j|d d} n| dkr|} | dk	st	| sdS |dkrd
dgdd}|dk	st	d}	d|kr$t|	j|dd|d }
t
|
sHt|	j|ddxJ|
D ]B}yt| W n. tk
r   t|	j|dj|dY nX qNW |jd}|jdg }g }|dkrd}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.
        )
    zW does not appear to be a Python project: neither 'setup.py' nor 'pyproject.toml' found.zutf-8)encodingNzbuild-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.tomlzsetuptools>=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}zbackend-path)r   r   isfiler	   openr   loadgetformatAssertionErrorr   r   r   r   )r    r!   r"   r#   Zhas_pyprojectZ	has_setupfZpp_tomlZbuild_systemZerror_templater   requirementr   r   r   r   r   r   load_pyproject_toml   st    








r0   )r   collectionsr   typingr   r   r   pip._vendorr   "pip._vendor.packaging.requirementsr   r   pip._internal.exceptionsr	   boolr   r   r   r   r0   r   r   r   r   <module>   s   