a
    ‡Ààgè  ã                   @   sª   d dl mZ d dlZd dlZd dlZd dlmZ d dlmZm	Z	 d dl
mZmZ d dlmZ d dlmZ er€d dlmZmZmZ d	d
„ Zdd„ Zedg d¢ƒZdd„ ZdS )é    )Úabsolute_importN)Ú
namedtuple)ÚsixÚtoml)ÚInvalidRequirementÚRequirement)ÚInstallationError)ÚMYPY_CHECK_RUNNING)ÚAnyÚListÚOptionalc                 C   s   t | tƒotdd„ | D ƒƒS )Nc                 s   s   | ]}t |tjƒV  qd S )N)Ú
isinstancer   Ústring_types)Ú.0Úitem© r   úP/var/www/sistema_ama/venv/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¡}tjr.t|tjƒr.| t 	¡ ¡}|S )Nzpyproject.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 j |¡}t j |¡}|r`tj|dd��}t |¡}W d  ƒ n1 sJ0    Y  | d¡}nd}|r†|s†| dur€| s€tdƒ‚d} n<|r¶d|v r¶| dur°| s°td 	|d ¡ƒ‚d} n| du rÂ|} | dusÎJ ‚| sÖdS |du rìd	d
gddœ}|dusøJ ‚d}	d|v�rt|	j	|dd�ƒ‚|d }
t
|
ƒ�s<t|	j	|dd�ƒ‚|
D ]@}zt|ƒ W n, t�y|   t|	j	|d 	|¡d�ƒ‚Y n0 �q@| d¡}| dg ¡}g }|du �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.
        )
    zutf-8)ÚencodingNzbuild-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.tomlzsetuptools>=40.8.0Úwheelz 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}zbackend-path)r   r   ÚisfileÚioÚopenr   ÚloadÚgetr   Úformatr   r   r   r#   )Ú
use_pep517Úpyproject_tomlÚsetup_pyÚreq_nameZhas_pyprojectZ	has_setupÚfZpp_tomlZbuild_systemZerror_templater$   Úrequirementr%   r'   r&   r   r   r   Úload_pyproject_toml*   s€    (ÿýÿ
þ	ÿ
ÿÿ
þÿýÿ


r9   )Ú
__future__r   r.   r   r   Úcollectionsr   Úpip._vendorr   r   Ú"pip._vendor.packaging.requirementsr   r   Úpip._internal.exceptionsr   Úpip._internal.utils.typingr	   Útypingr
   r   r   r   r"   r#   r9   r   r   r   r   Ú<module>   s   