U ÀÒ.eZã@s„ddlmZddlZddlZddlZddlmZmZddlm Z ddl m Z e rhddl m Z mZmZmZdd„Zd d „Zd d „ZdS) é)Úabsolute_importN)ÚpytomlÚsix)ÚInstallationError)ÚMYPY_CHECK_RUNNING)ÚAnyÚTupleÚOptionalÚListcCst|tƒotdd„|DƒƒS)Ncss|]}t|tjƒVqdS)N)Ú isinstancerZ string_types)Ú.0Úitem©rú;/usr/lib/python3.8/site-packages/pip/_internal/pyproject.pyÚ sz"_is_list_of_str..)r ÚlistÚall)ÚobjrrrÚ_is_list_of_strs þrcCs2tj |d¡}tjr.t|tjƒr.| t  ¡¡}|S)Nzpyproject.toml) ÚosÚpathÚjoinrZPY2r Z text_typeÚencodeÚsysÚgetfilesystemencoding)Zunpacked_source_directoryrrrrÚmake_pyproject_pathsrc CsVtj |¡}tj |¡}|rLtj|dd��}t |¡}W5QRX| d¡}nd}|rr|sr|dk rl|sltdƒ‚d}n<|r¢d|kr¢|dk rœ|sœtd  |d¡ƒ‚d}n |dkr®|}|dk sºt ‚|sÂdS|dkrØd d gd d œ}|dk sät ‚d } d|k�rt| j |dd�ƒ‚|d} t | ƒ�s(t| j |dd�ƒ‚| d¡} g} | dk�rLd } d d g} | | | fS)aÍ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 ) zutf-8)Úencodingz build-systemNzIDisabling 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.tomlzsetuptools>=40.8.0Zwheelz setuptools.build_meta:__legacy__)ÚrequiresrzO{package} has a pyproject.toml file that does not comply with PEP 518: {reason}rz]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.) rrÚisfileÚioÚopenrÚloadÚgetrÚformatÚAssertionErrorr) Z use_pep517Zpyproject_tomlZsetup_pyZreq_nameZ has_pyprojectZ has_setupÚfZpp_tomlZ build_systemZerror_templaterZbackendZcheckrrrÚload_pyproject_toml#sf    ÿ  ýÿ  þ ÿ ÿÿ þ  r))Z __future__rr"rrZ pip._vendorrrZpip._internal.exceptionsrZpip._internal.utils.typingrÚtypingrrr r rrr)rrrrÚs