
    xi                        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y)    )annotationsN)
namedtuple)Any)InvalidRequirement)InstallationErrorInvalidPyProjectBuildRequiresMissingPyProjectBuildRequires)tomllib)get_requirementc                J    t        | t              xr t        d | D              S )Nc              3  <   K   | ]  }t        |t                y w)N)
isinstancestr).0items     R/var/www/html/binance/venv/lib/python3.12/site-packages/pip/_internal/pyproject.py	<genexpr>z"_is_list_of_str.<locals>.<genexpr>   s     (O4D#)>(Os   )r   listall)objs    r   _is_list_of_strr      s    c4 OS(O3(O%OO    c                B    t         j                  j                  | d      S )Nzpyproject.toml)ospathjoin)unpacked_source_directorys    r   make_pyproject_pathr      s    77<<13CDDr   BuildSystemDetails)requiresbackendcheckbackend_pathc                   t         j                  j                  |       }t         j                  j                  |      }|s|st        | d      |rKt	        | d      5 }t        j                  |j                               }ddd       j                  d      }nd}|dgdd}d	|vrt        |
      |d	   }t        |      st        |d      |D ]  }		 t        |	        |j                  d      }|j                  dg       }g }|d}dg}t        ||||      S # 1 sw Y   xY w# t        $ r}
t        |d|	      |
d}
~
ww xY w)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   )pyproject_tomlsetup_pyreq_namehas_pyproject	has_setupfpp_tomlbuild_systemr    requirementerrorr!   r#   r"   s                 r   load_pyproject_tomlr8      s   , GGNN>2Mx(Ij = >
 	

 .73 	.qmmAFFH-G	.{{>2 ..?
 %+H== J'H8$+1
 	
   	K( /G##NB7LE 5%&hEEy	. 	.H " 	/ =k_M 	s$    $D"D."D+.	E7EE)r   r   returnbool)r   r   r9   r   )r.   r   r/   r   r0   r   r9   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   r8    r   r   <module>rC      st    " 	 "  A 
 / 9PE  J 
\F\F#&\F25\F\Fr   