I i&xddlmZddlZddlmZddlmZddlmZerddl m Z Gddej Z y) ) annotationsN) TYPE_CHECKING)BaseDistribution)InstallRequirement)BuildEnvironmentInstallerceZdZdZdfd Zej ddZejddZ ej d dZ xZ S) AbstractDistributionaA 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. c0t|||_yN)super__init__req)selfr __class__s f/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pip/_internal/distributions/base.pyr zAbstractDistribution.__init__ s ct)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.NotImplementedErrorrs rbuild_tracker_idz%AbstractDistribution.build_tracker_id$s "##rctr rrs rget_metadata_distributionz.AbstractDistribution.get_metadata_distribution,s !##rctr r)rbuild_env_installerbuild_isolationcheck_build_depss rprepare_distribution_metadataz2AbstractDistribution.prepare_distribution_metadata0s "##r)rrreturnNone)rz str | None)rr)rrrboolrr!rr ) __name__ __module__ __qualname____doc__r abcabstractpropertyrabstractmethodrr __classcell__)rs@rr r s$ $$ $$ $6$$ $  $$rr ) metaclass) __future__rr&typingrpip._internal.metadata.baserpip._internal.reqrpip._internal.build_envrABCMetar rrr2s*" 80A*$S[[*$r