
    WhA                        d dl mZ d dlZd dlZd dlmZ d dlm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 ddZddZ edg d          ZddZdS )    )annotationsN)
namedtuple)Any)InvalidRequirement)InstallationErrorInvalidPyProjectBuildRequiresMissingPyProjectBuildRequires)tomllib)get_requirementobjr   returnboolc                ^    t          | t                    ot          d | D                       S )Nc              3  @   K   | ]}t          |t                    V  d S )N)
isinstancestr).0items     i/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/pip/_internal/pyproject.py	<genexpr>z"_is_list_of_str.<locals>.<genexpr>   s,      (O(O4D#)>)>(O(O(O(O(O(O    )r   listall)r   s    r   _is_list_of_strr      s.    c4  OS(O(O3(O(O(O%O%OOr   unpacked_source_directoryr   c                B    t           j                            | d          S )Nzpyproject.toml)ospathjoin)r   s    r   make_pyproject_pathr       s    7<<13CDDDr   BuildSystemDetails)requiresbackendcheckbackend_path
use_pep517bool | Nonepyproject_tomlsetup_pyreq_nameBuildSystemDetails | Nonec                F   t           j                            |          }t           j                            |          }|s|st          | d          |ret	          |d          5 }t          j        |                                          }ddd           n# 1 swxY w Y   |                    d          }nd}|r|s| | st          d          d} ny|r3d|v r/| *| s(t          d		                    |d                             d} nD| B|p?t          j                            d
           pt          j                            d           } | J | sdS |dgdd}|J d|vrt          |          |d         }	t          |	          st          |d          |	D ]9}
	 t!          |
           # t"          $ r}t          |d|
          |d}~ww xY w|                    d          }|                    dg           }g }|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.pyTbuild-backendzbDisabling PEP 517 processing is invalid: project specifies a build backend of {} in pyproject.toml
setuptoolswheelzsetuptools>=40.8.0z setuptools.build_meta:__legacy__)r"   r.   r"   )packagezIt is not a list of strings.)r1   reasonz$It contains an invalid requirement: zbackend-path)r   r   isfiler   openr
   loadsreadgetformat	importlibutil	find_specr	   r   r   r   r   r!   )r&   r(   r)   r*   has_pyproject	has_setupfpp_tomlbuild_systemr"   requirementerrorr#   r%   r$   s                  r   load_pyproject_tomlrC       s2   0 GNN>22Mx((I 
 
 > > >
 
 	

  .7333 	.qmAFFHH--G	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.{{>22  
Y 
!*!#3   

	 
/\99!*!#$$*F<+H$I$I  
 

 
	 5>++L9995>++G444 	 !!!  t ..?
 
 ### %%+H==== J'H8$$ 
+1
 
 
 	
    	K((((! 	 	 	/ MkMM   	 //G##NB77LE 5%&hEEEs*   ('BB"B&F66
G GG)r   r   r   r   )r   r   r   r   )
r&   r'   r(   r   r)   r   r*   r   r   r+   )
__future__r   importlib.utilr9   r   collectionsr   typingr   "pip._vendor.packaging.requirementsr   pip._internal.exceptionsr   r   r	   pip._internal.utils.compatr
   pip._internal.utils.packagingr   r   r    r!   rC    r   r   <module>rM      s4   " " " " " "     				 " " " " " "       A A A A A A         
 / . . . . . 9 9 9 9 9 9P P P PE E E E  ZJJJ  
VF VF VF VF VF VFr   