pub struct DistributionDatabase<'a, Context: BuildContext> { /* private fields */ }Expand description
A cached high-level interface to convert distributions (a requirement resolved to a location) to a wheel or wheel metadata.
For wheel metadata, this happens by either fetching the metadata from the remote wheel or by building the source distribution. For wheel files, either the wheel is downloaded or a source distribution is downloaded, built and the new wheel gets returned.
All kinds of wheel sources (index, URL, path) and source distribution source (index, URL, path, Git) are supported.
This struct also has the task of acquiring locks around source dist builds in general and git operation especially, as well as respecting concurrency limits.
Implementations§
Source§impl<'a, Context: BuildContext> DistributionDatabase<'a, Context>
impl<'a, Context: BuildContext> DistributionDatabase<'a, Context>
pub fn new( client: &'a RegistryClient, build_context: &'a Context, downloads_semaphore: Arc<Semaphore>, ) -> Self
Sourcepub fn with_first_party_packages(
self,
first_party_packages: &'a FirstPartyPackages,
) -> Self
pub fn with_first_party_packages( self, first_party_packages: &'a FirstPartyPackages, ) -> Self
Allow metadata builds for the given first-party workspace source trees.
Sourcepub fn is_first_party(&self, name: &PackageName, path: &Path) -> bool
pub fn is_first_party(&self, name: &PackageName, path: &Path) -> bool
Return whether the name and path identify an eligible workspace member.
Sourcepub fn with_recorder(self, recorder: Option<ResolutionRecorder>) -> Self
pub fn with_recorder(self, recorder: Option<ResolutionRecorder>) -> Self
Record which static metadata entries are consulted while resolving runtime dependencies.
Sourcepub fn record_metadata(&self, dist: &Dist)
pub fn record_metadata(&self, dist: &Dist)
Record a metadata lookup before reading an in-memory cache.
Sourcepub fn dependency_metadata(
&self,
name: &PackageName,
version: Option<&Version>,
) -> Option<ResolutionMetadata>
pub fn dependency_metadata( &self, name: &PackageName, version: Option<&Version>, ) -> Option<ResolutionMetadata>
Look up user-provided metadata, recording misses as well as matches.
Sourcepub fn with_build_stack(self, build_stack: &'a BuildStack) -> Self
pub fn with_build_stack(self, build_stack: &'a BuildStack) -> Self
Set the build stack to use for the DistributionDatabase.
Sourcepub fn with_reporter(self, reporter: Arc<dyn Reporter>) -> Self
pub fn with_reporter(self, reporter: Arc<dyn Reporter>) -> Self
Set the Reporter to use for the DistributionDatabase.
Sourcepub async fn get_or_build_wheel(
&self,
dist: &Dist,
tags: &Tags,
hashes: ArchiveHashPolicy<'_>,
) -> Result<LocalWheel, Error>
pub async fn get_or_build_wheel( &self, dist: &Dist, tags: &Tags, hashes: ArchiveHashPolicy<'_>, ) -> Result<LocalWheel, Error>
Either fetch the wheel or fetch and build the source distribution
Returns a wheel that’s compliant with the given platform tags.
Applicable hash checks are enforced before newly fetched archives are published to the cache. Callers must enforce their hash policy when reusing cached wheels.
Sourcepub async fn get_installed_metadata(
&self,
dist: &InstalledDist,
) -> Result<ArchiveMetadata, Error>
pub async fn get_installed_metadata( &self, dist: &InstalledDist, ) -> Result<ArchiveMetadata, Error>
Either fetch the only wheel metadata (directly from the index or with range requests) or fetch and build the source distribution.
While hashes will be generated in some cases, hash-checking is only enforced for source distributions, and should be enforced by the caller for wheels.
Sourcepub async fn get_or_build_wheel_metadata(
&self,
dist: &Dist,
hashes: MetadataHashPolicy<'_>,
) -> Result<ArchiveMetadata, Error>
pub async fn get_or_build_wheel_metadata( &self, dist: &Dist, hashes: MetadataHashPolicy<'_>, ) -> Result<ArchiveMetadata, Error>
Retrieve distribution metadata and any hashes requested for resolution.
Source archive hashes are validated before executing build backends; wheel archive hash validation is deferred to installation.
Sourcepub async fn build_wheel_metadata(
&self,
source: &BuildableSource<'_>,
hashes: MetadataHashPolicy<'_>,
) -> Result<ArchiveMetadata, Error>
pub async fn build_wheel_metadata( &self, source: &BuildableSource<'_>, hashes: MetadataHashPolicy<'_>, ) -> Result<ArchiveMetadata, Error>
Build the wheel metadata for a source distribution, or fetch it from the cache if possible.
Requested hashes are validated before executing a build backend. User-provided metadata can avoid downloading or validating the source archive.
Sourcepub async fn requires_dist(
&self,
path: &Path,
pyproject_toml: &PyProjectToml,
) -> Result<Option<RequiresDist>, Error>
pub async fn requires_dist( &self, path: &Path, pyproject_toml: &PyProjectToml, ) -> Result<Option<RequiresDist>, Error>
Return the RequiresDist from a pyproject.toml, if it can be statically extracted.
Auto Trait Implementations§
impl<'a, Context> !RefUnwindSafe for DistributionDatabase<'a, Context>
impl<'a, Context> !UnwindSafe for DistributionDatabase<'a, Context>
impl<'a, Context> Freeze for DistributionDatabase<'a, Context>
impl<'a, Context> Send for DistributionDatabase<'a, Context>
impl<'a, Context> Sync for DistributionDatabase<'a, Context>
impl<'a, Context> Unpin for DistributionDatabase<'a, Context>
impl<'a, Context> UnsafeUnpin for DistributionDatabase<'a, Context>
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
impl<T> MaybeSend for Twhere
T: Send,
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.Source§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more