o
    ñ‘Oj¢  ã                   @   s¼   d dl Z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mZmZ dedefd	d
„Zdedefdd„Zedg d¢ƒZdee dedededee f
dd„ZdS )é    N)Ú
namedtuple)ÚAnyÚListÚOptional)Útomli)ÚInvalidRequirementÚRequirement)ÚInstallationErrorÚInvalidPyProjectBuildRequiresÚMissingPyProjectBuildRequiresÚ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   ú]/var/www/html/pharmsmart-cdr-gen/venv/lib/python3.10/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_directoryc                 C   s   t 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_namec                 C   sÊ  t j |¡}t j |¡}|s|st|› d�ƒ‚|r<t|dd��}t | ¡ ¡}W d  ƒ n1 s1w   Y  | d¡}nd}|rO|sO| durL| sLtdƒ‚d} n%|rgd|v rg| durd| sdtd	 	|d ¡ƒ‚d} n| du rt|pst
j d
¡ } | duszJ ‚| s~dS |du r‰ddgddœ}|dus�J ‚d|vr˜t|d�‚|d }	t|	ƒs¦t|dd�‚|	D ]}
zt|
ƒ W q¨ tyÆ } z
t|d|
›�d�|‚d}~ww | 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.
        )
    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Ú
setuptoolszsetuptools>=40.8.0Úwheelz setuptools.build_meta:__legacy__)r   r'   r   )ÚpackagezIt is not a list of strings.)r*   Ú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    r   r   r   Úload_pyproject_toml   s|   ÿÿÿ
ý
þ	
þþý€ÿ
r<   )Úimportlib.utilr2   r   Úcollectionsr   Útypingr   r   r   Úpip._vendorr   Ú"pip._vendor.packaging.requirementsr   r   Úpip._internal.exceptionsr	   r
   r   Úboolr   r   r   r   r<   r   r   r   r   Ú<module>   s.    ÿÿÿÿÿþ