mirror of
https://github.com/astral-sh/uv.git
synced 2025-10-29 11:07:59 +00:00
Rename to uv (#1302)
First, replace all usages in files in-place. I used my editor for this. If someone wants to add a one-liner that'd be fun. Then, update directory and file names: ``` # Run twice for nested directories find . -type d -print0 | xargs -0 rename s/puffin/uv/g find . -type d -print0 | xargs -0 rename s/puffin/uv/g # Update files find . -type f -print0 | xargs -0 rename s/puffin/uv/g ``` Then add all the files again ``` # Add all the files again git add crates git add python/uv # This one needs a force-add git add -f crates/uv-trampoline ```
This commit is contained in:
parent
328b116d5d
commit
2586f655bb
229 changed files with 1796 additions and 1818 deletions
98
crates/uv-resolver/src/prerelease_mode.rs
Normal file
98
crates/uv-resolver/src/prerelease_mode.rs
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
use rustc_hash::FxHashSet;
|
||||
|
||||
use pep508_rs::{Requirement, VersionOrUrl};
|
||||
use uv_normalize::PackageName;
|
||||
|
||||
#[derive(Debug, Default, Clone, Copy, PartialEq, Eq)]
|
||||
#[cfg_attr(feature = "clap", derive(clap::ValueEnum))]
|
||||
pub enum PreReleaseMode {
|
||||
/// Disallow all pre-release versions.
|
||||
Disallow,
|
||||
|
||||
/// Allow all pre-release versions.
|
||||
Allow,
|
||||
|
||||
/// Allow pre-release versions if all versions of a package are pre-release.
|
||||
IfNecessary,
|
||||
|
||||
/// Allow pre-release versions for first-party packages with explicit pre-release markers in
|
||||
/// their version requirements.
|
||||
Explicit,
|
||||
|
||||
/// Allow pre-release versions if all versions of a package are pre-release, or if the package
|
||||
/// has an explicit pre-release marker in its version requirements.
|
||||
#[default]
|
||||
IfNecessaryOrExplicit,
|
||||
}
|
||||
|
||||
/// Like [`PreReleaseMode`], but with any additional information required to select a candidate,
|
||||
/// like the set of direct dependencies.
|
||||
#[derive(Debug, Clone)]
|
||||
pub(crate) enum PreReleaseStrategy {
|
||||
/// Disallow all pre-release versions.
|
||||
Disallow,
|
||||
|
||||
/// Allow all pre-release versions.
|
||||
Allow,
|
||||
|
||||
/// Allow pre-release versions if all versions of a package are pre-release.
|
||||
IfNecessary,
|
||||
|
||||
/// Allow pre-release versions for first-party packages with explicit pre-release markers in
|
||||
/// their version requirements.
|
||||
Explicit(FxHashSet<PackageName>),
|
||||
|
||||
/// Allow pre-release versions if all versions of a package are pre-release, or if the package
|
||||
/// has an explicit pre-release marker in its version requirements.
|
||||
IfNecessaryOrExplicit(FxHashSet<PackageName>),
|
||||
}
|
||||
|
||||
impl PreReleaseStrategy {
|
||||
pub(crate) fn from_mode(mode: PreReleaseMode, direct_dependencies: &[Requirement]) -> Self {
|
||||
match mode {
|
||||
PreReleaseMode::Disallow => Self::Disallow,
|
||||
PreReleaseMode::Allow => Self::Allow,
|
||||
PreReleaseMode::IfNecessary => Self::IfNecessary,
|
||||
PreReleaseMode::Explicit => Self::Explicit(
|
||||
direct_dependencies
|
||||
.iter()
|
||||
.filter(|requirement| {
|
||||
let Some(version_or_url) = &requirement.version_or_url else {
|
||||
return false;
|
||||
};
|
||||
let version_specifiers = match version_or_url {
|
||||
VersionOrUrl::VersionSpecifier(version_specifiers) => {
|
||||
version_specifiers
|
||||
}
|
||||
VersionOrUrl::Url(_) => return false,
|
||||
};
|
||||
version_specifiers
|
||||
.iter()
|
||||
.any(pep440_rs::VersionSpecifier::any_prerelease)
|
||||
})
|
||||
.map(|requirement| requirement.name.clone())
|
||||
.collect(),
|
||||
),
|
||||
PreReleaseMode::IfNecessaryOrExplicit => Self::IfNecessaryOrExplicit(
|
||||
direct_dependencies
|
||||
.iter()
|
||||
.filter(|requirement| {
|
||||
let Some(version_or_url) = &requirement.version_or_url else {
|
||||
return false;
|
||||
};
|
||||
let version_specifiers = match version_or_url {
|
||||
VersionOrUrl::VersionSpecifier(version_specifiers) => {
|
||||
version_specifiers
|
||||
}
|
||||
VersionOrUrl::Url(_) => return false,
|
||||
};
|
||||
version_specifiers
|
||||
.iter()
|
||||
.any(pep440_rs::VersionSpecifier::any_prerelease)
|
||||
})
|
||||
.map(|requirement| requirement.name.clone())
|
||||
.collect(),
|
||||
),
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue