
    !2i                        d dl m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     V/var/www/html/pixcura-vrs/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pyproject_tomlsetup_pyreq_namec                   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}|dgdd}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 )a  Load the pyproject.toml file.

    Parameters:
        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-systemzsetuptools>=40.8.0z setuptools.build_meta:__legacy__)r"   build-backendr"   )packagezIt is not a list of strings.)r,   reasonz$It contains an invalid requirement: r+   zbackend-path)r   r   isfiler   openr
   loadsreadgetr	   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_tomlr:      s6   , GNN>22Mx((I 
 
 > > >
 
 	

  .7333 	.qmAFFHH--G	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.{{>22 ..?
 
 %%+H==== J'H8$$ 
+1
 
 
 	
    	K((((! 	 	 	/ MkMM   	 //G##NB77LE 5%&hEEEs*   ('BB"BD
D;!D66D;)r   r   r   r   )r   r   r   r   )r&   r   r'   r   r(   r   r   r!   )
__future__r   r   collectionsr   typingr   "pip._vendor.packaging.requirementsr   pip._internal.exceptionsr   r   r	   pip._internal.utils.compatr
   pip._internal.utils.packagingr   r   r    r!   r:    r   r   <module>rC      s(   " " " " " " 				 " " " " " "       A A A A A A         
 / . . . . . 9 9 9 9 9 9P P P PE E E E  ZJJJ  
\F \F \F \F \F \Fr   