R`i h d dl Z d dlmZ d dlmZ d dlmZ d dlmZ G d de j Z
y) N)Optional)
PackageFinder)BaseDistribution)InstallRequirementc e Zd ZdZdeddf fdZej dee fd Z
ej defd Z
ej ded ed
eddfd Z xZS )AbstractDistributiona A base class for handling installable artifacts.
The requirements for anything installable are as follows:
- we must be able to determine the requirement name
(or we can't correctly handle the non-upgrade case).
- for packages with setup requirements, we must also be able
to determine their requirements without installing additional
packages (for the same reason as run-time dependencies)
- we must be able to create a Distribution object exposing the
above metadata.
- if we need to do work in the build tracker, we must be able to generate a unique
string to identify the requirement in the build tracker.
reqreturnNc 0 t | || _ y N)super__init__r )selfr __class__s /builddir/build/BUILDROOT/alt-python312-pip-23.3.1-3.el8.x86_64/opt/alt/python312/lib/python3.12/site-packages/pip/_internal/distributions/base.pyr zAbstractDistribution.__init__ s
c t )zA string that uniquely identifies this requirement to the build tracker.
If None, then this dist has no work to do in the build tracker, and
``.prepare_distribution_metadata()`` will not be called.NotImplementedErrorr s r build_tracker_idz%AbstractDistribution.build_tracker_id s
"##r c t r r r s r get_metadata_distributionz.AbstractDistribution.get_metadata_distribution( s !##r finderbuild_isolationcheck_build_depsc t r r )r r r r s r prepare_distribution_metadataz2AbstractDistribution.prepare_distribution_metadata, s
"##r )__name__
__module____qualname____doc__r r abcabstractpropertyr strr abstractmethodr r r boolr
__classcell__)r s @r r r s $. 4 $(3- $ $ $+; $ $ $$ $ $
$ $r r ) metaclass)r# typingr "pip._internal.index.package_finderr pip._internal.metadata.baser pip._internal.reqr ABCMetar r r