U ʗRe^@sddlZddlmZmZmZddlmZddlmZddl m Z ddl m Z ddl mZddlmZeeZGd d d eZdS) N)IterableSetTuple)BuildEnvironment)AbstractDistribution)InstallationError) PackageFinder)BaseDistribution)runner_with_spinner_messagec@seZdZdZedddZeeeddddZedd d d Z e e dd d Z e e dddZ edd ddZe eee e fddddZee ddddZdS)SourceDistributionzRepresents a source distribution. The preparation step for these needs metadata for the packages to be generated, either using PEP 517 or using the legacy `setup.py egg_info`. )returncCs |jS)N)reqget_dist)selfr/builddir/build/BUILDROOT/alt-python38-pip-22.2.1-2.el8.x86_64/opt/alt/python38/lib/python3.8/site-packages/pip/_internal/distributions/sdist.pyget_metadata_distributionsz,SourceDistribution.get_metadata_distributionN)finderbuild_isolationcheck_build_depsr c Cs|j|jjo|}|r8|||j|||jjoB|}|r|jj}|dk s\t|jj |\}}|r~| d||r| ||j dS)Nthe backend dependencies) r load_pyproject_toml use_pep517_prepare_build_backendisolated_editable_sanity_check_install_build_reqspyproject_requiresAssertionError build_envcheck_requirements_raise_conflicts_raise_missing_reqsprepare_metadata) rrrrshould_isolateshould_check_depsr conflictingmissingrrrprepare_distribution_metadatas$         z0SourceDistribution.prepare_distribution_metadata)rr c Cs|jj}|dk stt|j_|jjj||ddd|jj|jj\}}|rZ|d||rt d|jt dd t t t|dS)Noverlayzbuild dependencieskindz"PEP 517/518 supported requirementsz4Missing build requirements in pyproject.toml for %s.z`The project does not specify a build backend, and pip cannot fall back to setuptools without %s.z and )r rrrrinstall_requirementsrrequirements_to_checkr loggerwarningjoinmapreprsorted)rrrr%r&rrrr?s.   z)SourceDistribution._prepare_build_backendc Csf|jjTtd}|jj}|dk s&t||"|W5QRW5QRSQRXW5QRXdS)Nz#Getting requirements to build wheel)r rr pep517_backendrsubprocess_runnerget_requires_for_build_wheelrrunnerbackendrrr_get_build_requires_wheelYs    z,SourceDistribution._get_build_requires_wheelc Csf|jjTtd}|jj}|dk s&t||"|W5QRW5QRSQRXW5QRXdS)Nz&Getting requirements to build editable)r rr r3rr4get_requires_for_build_editabler6rrr_get_build_requires_editableas   z/SourceDistribution._get_build_requires_editablecCsh|jjr$|jjr$|jr$|}n|}|jj|\}}|rN|d||jjj ||ddddS)Nrnormalzbackend dependenciesr)) r editablepermit_editable_wheelssupports_pyproject_editabler;r9rrr r+)rr build_reqsr%r&rrrrks"  z&SourceDistribution._install_build_reqs)conflicting_withconflicting_reqsr cCs6d}|j|j|dddt|Dd}t|dS)NzZSome build dependencies for {requirement} conflict with {conflicting_with}: {description}., css |]\}}|d|VqdS)z is incompatible with Nr).0 installedwantedrrr sz6SourceDistribution._raise_conflicts..) requirementrA description)formatr r/r2r)rrArB format_string error_messagerrrr ~s z#SourceDistribution._raise_conflicts)r&r cCs0d}|j|jdttt|d}t|dS)NzASome build dependencies for {requirement} are missing: {missing}.rC)rHr&)rJr r/r0r1r2r)rr&rKrLrrrr!sz&SourceDistribution._raise_missing_reqs)__name__ __module__ __qualname____doc__r rrboolr'rrstrr9r;rrrr r!rrrrr s  '  r )loggingtypingrrrpip._internal.build_envr pip._internal.distributions.baserpip._internal.exceptionsr"pip._internal.index.package_finderrpip._internal.metadatar pip._internal.utils.subprocessr getLoggerrMr-r rrrrs