mirror of
https://github.com/astral-sh/uv.git
synced 2025-08-04 19:08:04 +00:00
Use sets rather than vectors for lockfile requirements (#6107)
## Summary Ensures that `--locked` is robust to reordering and duplicates.
This commit is contained in:
parent
fd0daae969
commit
29179570a1
23 changed files with 500 additions and 349 deletions
|
@ -37,7 +37,18 @@ use crate::{
|
|||
/// // VersionSpecifiers derefs into a list of specifiers
|
||||
/// assert_eq!(version_specifiers.iter().position(|specifier| *specifier.operator() == Operator::LessThan), Some(1));
|
||||
/// ```
|
||||
#[derive(Eq, PartialEq, Debug, Clone, Hash, rkyv::Archive, rkyv::Deserialize, rkyv::Serialize)]
|
||||
#[derive(
|
||||
Eq,
|
||||
PartialEq,
|
||||
Ord,
|
||||
PartialOrd,
|
||||
Debug,
|
||||
Clone,
|
||||
Hash,
|
||||
rkyv::Archive,
|
||||
rkyv::Deserialize,
|
||||
rkyv::Serialize,
|
||||
)]
|
||||
#[archive(check_bytes)]
|
||||
#[archive_attr(derive(Debug))]
|
||||
#[cfg_attr(feature = "pyo3", pyclass(sequence))]
|
||||
|
|
|
@ -35,7 +35,9 @@ pub enum RequirementError {
|
|||
///
|
||||
/// The main change is using [`RequirementSource`] to represent all supported package sources over
|
||||
/// [`VersionOrUrl`], which collapses all URL sources into a single stringly type.
|
||||
#[derive(Hash, Debug, Clone, Eq, PartialEq, serde::Serialize, serde::Deserialize)]
|
||||
#[derive(
|
||||
Hash, Debug, Clone, Eq, PartialEq, Ord, PartialOrd, serde::Serialize, serde::Deserialize,
|
||||
)]
|
||||
pub struct Requirement {
|
||||
pub name: PackageName,
|
||||
#[serde(skip_serializing_if = "Vec::is_empty", default)]
|
||||
|
@ -294,7 +296,9 @@ impl Display for Requirement {
|
|||
/// We store both the parsed fields (such as the plain url and the subdirectory) and the joined
|
||||
/// PEP 508 style url (e.g. `file:///<path>#subdirectory=<subdirectory>`) since we need both in
|
||||
/// different locations.
|
||||
#[derive(Hash, Debug, Clone, Eq, PartialEq, serde::Serialize, serde::Deserialize)]
|
||||
#[derive(
|
||||
Hash, Debug, Clone, Eq, PartialEq, Ord, PartialOrd, serde::Serialize, serde::Deserialize,
|
||||
)]
|
||||
#[serde(try_from = "RequirementSourceWire", into = "RequirementSourceWire")]
|
||||
pub enum RequirementSource {
|
||||
/// The requirement has a version specifier, such as `foo >1,<2`.
|
||||
|
|
|
@ -680,9 +680,9 @@ impl Lock {
|
|||
|
||||
// Validate that the lockfile was generated with the same root members.
|
||||
{
|
||||
let expected = members;
|
||||
let expected = members.iter().cloned().collect::<BTreeSet<_>>();
|
||||
let actual = &self.manifest.members;
|
||||
if expected != actual {
|
||||
if expected != *actual {
|
||||
debug!(
|
||||
"Mismatched members:\n expected: {:?}\n found: {:?}",
|
||||
expected, actual
|
||||
|
@ -693,12 +693,12 @@ impl Lock {
|
|||
|
||||
// Validate that the lockfile was generated with the same constraints.
|
||||
{
|
||||
let expected: Vec<_> = constraints
|
||||
let expected: BTreeSet<_> = constraints
|
||||
.iter()
|
||||
.cloned()
|
||||
.map(|requirement| normalize_requirement(requirement, workspace))
|
||||
.collect();
|
||||
let actual: Vec<_> = self
|
||||
let actual: BTreeSet<_> = self
|
||||
.manifest
|
||||
.constraints
|
||||
.iter()
|
||||
|
@ -716,12 +716,12 @@ impl Lock {
|
|||
|
||||
// Validate that the lockfile was generated with the same overrides.
|
||||
{
|
||||
let expected: Vec<_> = overrides
|
||||
let expected: BTreeSet<_> = overrides
|
||||
.iter()
|
||||
.cloned()
|
||||
.map(|requirement| normalize_requirement(requirement, workspace))
|
||||
.collect();
|
||||
let actual: Vec<_> = self
|
||||
let actual: BTreeSet<_> = self
|
||||
.manifest
|
||||
.overrides
|
||||
.iter()
|
||||
|
@ -772,13 +772,13 @@ impl Lock {
|
|||
|
||||
// Validate the `requires-dist` metadata.
|
||||
{
|
||||
let expected: Vec<_> = archive
|
||||
let expected: BTreeSet<_> = archive
|
||||
.metadata
|
||||
.requires_dist
|
||||
.into_iter()
|
||||
.map(|requirement| normalize_requirement(requirement, workspace))
|
||||
.collect();
|
||||
let actual: Vec<_> = package
|
||||
let actual: BTreeSet<_> = package
|
||||
.metadata
|
||||
.requires_dist
|
||||
.iter()
|
||||
|
@ -797,7 +797,7 @@ impl Lock {
|
|||
|
||||
// Validate the `dev-dependencies` metadata.
|
||||
{
|
||||
let expected: BTreeMap<GroupName, Vec<Requirement>> = archive
|
||||
let expected: BTreeMap<GroupName, BTreeSet<Requirement>> = archive
|
||||
.metadata
|
||||
.dev_dependencies
|
||||
.into_iter()
|
||||
|
@ -811,7 +811,7 @@ impl Lock {
|
|||
)
|
||||
})
|
||||
.collect();
|
||||
let actual: BTreeMap<GroupName, Vec<Requirement>> = package
|
||||
let actual: BTreeMap<GroupName, BTreeSet<Requirement>> = package
|
||||
.metadata
|
||||
.requires_dev
|
||||
.iter()
|
||||
|
@ -888,25 +888,25 @@ struct ResolverOptions {
|
|||
pub struct ResolverManifest {
|
||||
/// The workspace members included in the lockfile.
|
||||
#[serde(default)]
|
||||
members: Vec<PackageName>,
|
||||
members: BTreeSet<PackageName>,
|
||||
/// The constraints provided to the resolver.
|
||||
#[serde(default)]
|
||||
constraints: Vec<Requirement>,
|
||||
constraints: BTreeSet<Requirement>,
|
||||
/// The overrides provided to the resolver.
|
||||
#[serde(default)]
|
||||
overrides: Vec<Requirement>,
|
||||
overrides: BTreeSet<Requirement>,
|
||||
}
|
||||
|
||||
impl ResolverManifest {
|
||||
pub fn new(
|
||||
members: Vec<PackageName>,
|
||||
constraints: Vec<Requirement>,
|
||||
overrides: Vec<Requirement>,
|
||||
members: impl IntoIterator<Item = PackageName>,
|
||||
constraints: impl IntoIterator<Item = Requirement>,
|
||||
overrides: impl IntoIterator<Item = Requirement>,
|
||||
) -> Self {
|
||||
Self {
|
||||
members,
|
||||
constraints,
|
||||
overrides,
|
||||
members: members.into_iter().collect(),
|
||||
constraints: constraints.into_iter().collect(),
|
||||
overrides: overrides.into_iter().collect(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1010,14 +1010,24 @@ impl Package {
|
|||
let sdist = SourceDist::from_annotated_dist(&id, annotated_dist)?;
|
||||
let wheels = Wheel::from_annotated_dist(annotated_dist)?;
|
||||
let requires_dist = if id.source.is_immutable() {
|
||||
vec![]
|
||||
BTreeSet::default()
|
||||
} else {
|
||||
annotated_dist.metadata.requires_dist.clone()
|
||||
annotated_dist
|
||||
.metadata
|
||||
.requires_dist
|
||||
.iter()
|
||||
.cloned()
|
||||
.collect()
|
||||
};
|
||||
let requires_dev = if id.source.is_immutable() {
|
||||
BTreeMap::default()
|
||||
} else {
|
||||
annotated_dist.metadata.dev_dependencies.clone()
|
||||
annotated_dist
|
||||
.metadata
|
||||
.dev_dependencies
|
||||
.iter()
|
||||
.map(|(k, v)| (k.clone(), v.iter().cloned().collect()))
|
||||
.collect()
|
||||
};
|
||||
Ok(Package {
|
||||
id,
|
||||
|
@ -1029,7 +1039,6 @@ impl Package {
|
|||
dev_dependencies: BTreeMap::default(),
|
||||
metadata: PackageMetadata {
|
||||
requires_dist,
|
||||
|
||||
requires_dev,
|
||||
},
|
||||
})
|
||||
|
@ -1511,9 +1520,9 @@ struct PackageWire {
|
|||
#[serde(rename_all = "kebab-case")]
|
||||
struct PackageMetadata {
|
||||
#[serde(default)]
|
||||
requires_dist: Vec<Requirement>,
|
||||
requires_dist: BTreeSet<Requirement>,
|
||||
#[serde(default)]
|
||||
requires_dev: BTreeMap<GroupName, Vec<Requirement>>,
|
||||
requires_dev: BTreeMap<GroupName, BTreeSet<Requirement>>,
|
||||
}
|
||||
|
||||
impl PackageWire {
|
||||
|
|
|
@ -58,7 +58,7 @@ Ok(
|
|||
optional_dependencies: {},
|
||||
dev_dependencies: {},
|
||||
metadata: PackageMetadata {
|
||||
requires_dist: [],
|
||||
requires_dist: {},
|
||||
requires_dev: {},
|
||||
},
|
||||
},
|
||||
|
@ -77,9 +77,9 @@ Ok(
|
|||
}: 0,
|
||||
},
|
||||
manifest: ResolverManifest {
|
||||
members: [],
|
||||
constraints: [],
|
||||
overrides: [],
|
||||
members: {},
|
||||
constraints: {},
|
||||
overrides: {},
|
||||
},
|
||||
},
|
||||
)
|
||||
|
|
|
@ -65,7 +65,7 @@ Ok(
|
|||
optional_dependencies: {},
|
||||
dev_dependencies: {},
|
||||
metadata: PackageMetadata {
|
||||
requires_dist: [],
|
||||
requires_dist: {},
|
||||
requires_dev: {},
|
||||
},
|
||||
},
|
||||
|
@ -84,9 +84,9 @@ Ok(
|
|||
}: 0,
|
||||
},
|
||||
manifest: ResolverManifest {
|
||||
members: [],
|
||||
constraints: [],
|
||||
overrides: [],
|
||||
members: {},
|
||||
constraints: {},
|
||||
overrides: {},
|
||||
},
|
||||
},
|
||||
)
|
||||
|
|
|
@ -63,7 +63,7 @@ Ok(
|
|||
optional_dependencies: {},
|
||||
dev_dependencies: {},
|
||||
metadata: PackageMetadata {
|
||||
requires_dist: [],
|
||||
requires_dist: {},
|
||||
requires_dev: {},
|
||||
},
|
||||
},
|
||||
|
@ -80,9 +80,9 @@ Ok(
|
|||
}: 0,
|
||||
},
|
||||
manifest: ResolverManifest {
|
||||
members: [],
|
||||
constraints: [],
|
||||
overrides: [],
|
||||
members: {},
|
||||
constraints: {},
|
||||
overrides: {},
|
||||
},
|
||||
},
|
||||
)
|
||||
|
|
|
@ -51,7 +51,7 @@ Ok(
|
|||
optional_dependencies: {},
|
||||
dev_dependencies: {},
|
||||
metadata: PackageMetadata {
|
||||
requires_dist: [],
|
||||
requires_dist: {},
|
||||
requires_dev: {},
|
||||
},
|
||||
},
|
||||
|
@ -109,7 +109,7 @@ Ok(
|
|||
optional_dependencies: {},
|
||||
dev_dependencies: {},
|
||||
metadata: PackageMetadata {
|
||||
requires_dist: [],
|
||||
requires_dist: {},
|
||||
requires_dev: {},
|
||||
},
|
||||
},
|
||||
|
@ -139,9 +139,9 @@ Ok(
|
|||
}: 1,
|
||||
},
|
||||
manifest: ResolverManifest {
|
||||
members: [],
|
||||
constraints: [],
|
||||
overrides: [],
|
||||
members: {},
|
||||
constraints: {},
|
||||
overrides: {},
|
||||
},
|
||||
},
|
||||
)
|
||||
|
|
|
@ -51,7 +51,7 @@ Ok(
|
|||
optional_dependencies: {},
|
||||
dev_dependencies: {},
|
||||
metadata: PackageMetadata {
|
||||
requires_dist: [],
|
||||
requires_dist: {},
|
||||
requires_dev: {},
|
||||
},
|
||||
},
|
||||
|
@ -109,7 +109,7 @@ Ok(
|
|||
optional_dependencies: {},
|
||||
dev_dependencies: {},
|
||||
metadata: PackageMetadata {
|
||||
requires_dist: [],
|
||||
requires_dist: {},
|
||||
requires_dev: {},
|
||||
},
|
||||
},
|
||||
|
@ -139,9 +139,9 @@ Ok(
|
|||
}: 1,
|
||||
},
|
||||
manifest: ResolverManifest {
|
||||
members: [],
|
||||
constraints: [],
|
||||
overrides: [],
|
||||
members: {},
|
||||
constraints: {},
|
||||
overrides: {},
|
||||
},
|
||||
},
|
||||
)
|
||||
|
|
|
@ -51,7 +51,7 @@ Ok(
|
|||
optional_dependencies: {},
|
||||
dev_dependencies: {},
|
||||
metadata: PackageMetadata {
|
||||
requires_dist: [],
|
||||
requires_dist: {},
|
||||
requires_dev: {},
|
||||
},
|
||||
},
|
||||
|
@ -109,7 +109,7 @@ Ok(
|
|||
optional_dependencies: {},
|
||||
dev_dependencies: {},
|
||||
metadata: PackageMetadata {
|
||||
requires_dist: [],
|
||||
requires_dist: {},
|
||||
requires_dev: {},
|
||||
},
|
||||
},
|
||||
|
@ -139,9 +139,9 @@ Ok(
|
|||
}: 1,
|
||||
},
|
||||
manifest: ResolverManifest {
|
||||
members: [],
|
||||
constraints: [],
|
||||
overrides: [],
|
||||
members: {},
|
||||
constraints: {},
|
||||
overrides: {},
|
||||
},
|
||||
},
|
||||
)
|
||||
|
|
|
@ -37,7 +37,7 @@ Ok(
|
|||
optional_dependencies: {},
|
||||
dev_dependencies: {},
|
||||
metadata: PackageMetadata {
|
||||
requires_dist: [],
|
||||
requires_dist: {},
|
||||
requires_dev: {},
|
||||
},
|
||||
},
|
||||
|
@ -61,9 +61,9 @@ Ok(
|
|||
}: 0,
|
||||
},
|
||||
manifest: ResolverManifest {
|
||||
members: [],
|
||||
constraints: [],
|
||||
overrides: [],
|
||||
members: {},
|
||||
constraints: {},
|
||||
overrides: {},
|
||||
},
|
||||
},
|
||||
)
|
||||
|
|
|
@ -35,7 +35,7 @@ Ok(
|
|||
optional_dependencies: {},
|
||||
dev_dependencies: {},
|
||||
metadata: PackageMetadata {
|
||||
requires_dist: [],
|
||||
requires_dist: {},
|
||||
requires_dev: {},
|
||||
},
|
||||
},
|
||||
|
@ -57,9 +57,9 @@ Ok(
|
|||
}: 0,
|
||||
},
|
||||
manifest: ResolverManifest {
|
||||
members: [],
|
||||
constraints: [],
|
||||
overrides: [],
|
||||
members: {},
|
||||
constraints: {},
|
||||
overrides: {},
|
||||
},
|
||||
},
|
||||
)
|
||||
|
|
|
@ -30,7 +30,7 @@ Ok(
|
|||
optional_dependencies: {},
|
||||
dev_dependencies: {},
|
||||
metadata: PackageMetadata {
|
||||
requires_dist: [],
|
||||
requires_dist: {},
|
||||
requires_dev: {},
|
||||
},
|
||||
},
|
||||
|
@ -47,9 +47,9 @@ Ok(
|
|||
}: 0,
|
||||
},
|
||||
manifest: ResolverManifest {
|
||||
members: [],
|
||||
constraints: [],
|
||||
overrides: [],
|
||||
members: {},
|
||||
constraints: {},
|
||||
overrides: {},
|
||||
},
|
||||
},
|
||||
)
|
||||
|
|
|
@ -30,7 +30,7 @@ Ok(
|
|||
optional_dependencies: {},
|
||||
dev_dependencies: {},
|
||||
metadata: PackageMetadata {
|
||||
requires_dist: [],
|
||||
requires_dist: {},
|
||||
requires_dev: {},
|
||||
},
|
||||
},
|
||||
|
@ -47,9 +47,9 @@ Ok(
|
|||
}: 0,
|
||||
},
|
||||
manifest: ResolverManifest {
|
||||
members: [],
|
||||
constraints: [],
|
||||
overrides: [],
|
||||
members: {},
|
||||
constraints: {},
|
||||
overrides: {},
|
||||
},
|
||||
},
|
||||
)
|
||||
|
|
|
@ -228,8 +228,8 @@ fn root_package_splits_transitive_too() -> Result<()> {
|
|||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "anyio", marker = "python_version >= '3.12'", specifier = "==4.3.0" },
|
||||
{ name = "anyio", marker = "python_version < '3.12'", specifier = "==4.2.0" },
|
||||
{ name = "anyio", marker = "python_version >= '3.12'", specifier = "==4.3.0" },
|
||||
{ name = "b", directory = "b" },
|
||||
]
|
||||
|
||||
|
@ -424,8 +424,8 @@ fn root_package_splits_other_dependencies_too() -> Result<()> {
|
|||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "anyio", marker = "python_version >= '3.12'", specifier = "==4.3.0" },
|
||||
{ name = "anyio", marker = "python_version < '3.12'", specifier = "==4.2.0" },
|
||||
{ name = "anyio", marker = "python_version >= '3.12'", specifier = "==4.3.0" },
|
||||
{ name = "b1", marker = "python_version < '3.12'", directory = "b1" },
|
||||
{ name = "b2", marker = "python_version >= '3.12'", directory = "b2" },
|
||||
]
|
||||
|
@ -791,8 +791,8 @@ fn dont_pre_visit_url_packages() -> Result<()> {
|
|||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "c", specifier = "==0.1.0" },
|
||||
{ name = "b", directory = "b" },
|
||||
{ name = "c", specifier = "==0.1.0" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
|
@ -1926,12 +1926,12 @@ fn update() -> Result<()> {
|
|||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "certifi", specifier = ">=2017.4.17" },
|
||||
{ name = "chardet", marker = "extra == 'use-chardet-on-py3'", specifier = "<6,>=3.0.2" },
|
||||
{ name = "charset-normalizer", specifier = "<4,>=2" },
|
||||
{ name = "idna", specifier = "<4,>=2.5" },
|
||||
{ name = "urllib3", specifier = "<3,>=1.21.1" },
|
||||
{ name = "certifi", specifier = ">=2017.4.17" },
|
||||
{ name = "pysocks", marker = "extra == 'socks'", specifier = "!=1.5.7,>=1.5.6" },
|
||||
{ name = "chardet", marker = "extra == 'use-chardet-on-py3'", specifier = "<6,>=3.0.2" },
|
||||
{ name = "urllib3", specifier = "<3,>=1.21.1" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
|
@ -854,24 +854,24 @@ fn lock_wheel_url() -> Result<()> {
|
|||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "idna", specifier = ">=2.8" },
|
||||
{ name = "sniffio", specifier = ">=1.1" },
|
||||
{ name = "exceptiongroup", marker = "python_version < '3.11'", specifier = ">=1.0.2" },
|
||||
{ name = "typing-extensions", marker = "python_version < '3.11'", specifier = ">=4.1" },
|
||||
{ name = "packaging", marker = "extra == 'doc'" },
|
||||
{ name = "sphinx", marker = "extra == 'doc'", specifier = ">=7" },
|
||||
{ name = "sphinx-rtd-theme", marker = "extra == 'doc'" },
|
||||
{ name = "sphinx-autodoc-typehints", marker = "extra == 'doc'", specifier = ">=1.2.0" },
|
||||
{ name = "anyio", extras = ["trio"], marker = "extra == 'test'" },
|
||||
{ name = "coverage", extras = ["toml"], marker = "extra == 'test'", specifier = ">=7" },
|
||||
{ name = "exceptiongroup", marker = "python_version < '3.11'", specifier = ">=1.0.2" },
|
||||
{ name = "exceptiongroup", marker = "extra == 'test'", specifier = ">=1.2.0" },
|
||||
{ name = "hypothesis", marker = "extra == 'test'", specifier = ">=4.0" },
|
||||
{ name = "idna", specifier = ">=2.8" },
|
||||
{ name = "packaging", marker = "extra == 'doc'" },
|
||||
{ name = "psutil", marker = "extra == 'test'", specifier = ">=5.9" },
|
||||
{ name = "pytest", marker = "extra == 'test'", specifier = ">=7.0" },
|
||||
{ name = "pytest-mock", marker = "extra == 'test'", specifier = ">=3.6.1" },
|
||||
{ name = "trustme", marker = "extra == 'test'" },
|
||||
{ name = "uvloop", marker = "platform_python_implementation == 'CPython' and platform_system != 'Windows' and extra == 'test'", specifier = ">=0.17" },
|
||||
{ name = "sniffio", specifier = ">=1.1" },
|
||||
{ name = "sphinx", marker = "extra == 'doc'", specifier = ">=7" },
|
||||
{ name = "sphinx-autodoc-typehints", marker = "extra == 'doc'", specifier = ">=1.2.0" },
|
||||
{ name = "sphinx-rtd-theme", marker = "extra == 'doc'" },
|
||||
{ name = "trio", marker = "extra == 'trio'", specifier = ">=0.23" },
|
||||
{ name = "trustme", marker = "extra == 'test'" },
|
||||
{ name = "typing-extensions", marker = "python_version < '3.11'", specifier = ">=4.1" },
|
||||
{ name = "uvloop", marker = "platform_python_implementation == 'CPython' and platform_system != 'Windows' and extra == 'test'", specifier = ">=0.17" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -987,24 +987,24 @@ fn lock_sdist_url() -> Result<()> {
|
|||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "idna", specifier = ">=2.8" },
|
||||
{ name = "sniffio", specifier = ">=1.1" },
|
||||
{ name = "exceptiongroup", marker = "python_version < '3.11'", specifier = ">=1.0.2" },
|
||||
{ name = "typing-extensions", marker = "python_version < '3.11'", specifier = ">=4.1" },
|
||||
{ name = "packaging", marker = "extra == 'doc'" },
|
||||
{ name = "sphinx", marker = "extra == 'doc'", specifier = ">=7" },
|
||||
{ name = "sphinx-rtd-theme", marker = "extra == 'doc'" },
|
||||
{ name = "sphinx-autodoc-typehints", marker = "extra == 'doc'", specifier = ">=1.2.0" },
|
||||
{ name = "anyio", extras = ["trio"], marker = "extra == 'test'" },
|
||||
{ name = "coverage", extras = ["toml"], marker = "extra == 'test'", specifier = ">=7" },
|
||||
{ name = "exceptiongroup", marker = "python_version < '3.11'", specifier = ">=1.0.2" },
|
||||
{ name = "exceptiongroup", marker = "extra == 'test'", specifier = ">=1.2.0" },
|
||||
{ name = "hypothesis", marker = "extra == 'test'", specifier = ">=4.0" },
|
||||
{ name = "idna", specifier = ">=2.8" },
|
||||
{ name = "packaging", marker = "extra == 'doc'" },
|
||||
{ name = "psutil", marker = "extra == 'test'", specifier = ">=5.9" },
|
||||
{ name = "pytest", marker = "extra == 'test'", specifier = ">=7.0" },
|
||||
{ name = "pytest-mock", marker = "extra == 'test'", specifier = ">=3.6.1" },
|
||||
{ name = "trustme", marker = "extra == 'test'" },
|
||||
{ name = "uvloop", marker = "platform_python_implementation == 'CPython' and platform_system != 'Windows' and extra == 'test'", specifier = ">=0.17" },
|
||||
{ name = "sniffio", specifier = ">=1.1" },
|
||||
{ name = "sphinx", marker = "extra == 'doc'", specifier = ">=7" },
|
||||
{ name = "sphinx-autodoc-typehints", marker = "extra == 'doc'", specifier = ">=1.2.0" },
|
||||
{ name = "sphinx-rtd-theme", marker = "extra == 'doc'" },
|
||||
{ name = "trio", marker = "extra == 'trio'", specifier = ">=0.23" },
|
||||
{ name = "trustme", marker = "extra == 'test'" },
|
||||
{ name = "typing-extensions", marker = "python_version < '3.11'", specifier = ">=4.1" },
|
||||
{ name = "uvloop", marker = "platform_python_implementation == 'CPython' and platform_system != 'Windows' and extra == 'test'", specifier = ">=0.17" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -2073,8 +2073,8 @@ fn lock_upgrade_log() -> Result<()> {
|
|||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "markupsafe", specifier = "<2" },
|
||||
{ name = "iniconfig" },
|
||||
{ name = "markupsafe", specifier = "<2" },
|
||||
]
|
||||
"###
|
||||
);
|
||||
|
@ -3797,12 +3797,12 @@ fn lock_python_version_marker_complement() -> Result<()> {
|
|||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "iniconfig", marker = "python_version >= '3.10'" },
|
||||
{ name = "iniconfig", marker = "python_version < '3.10'" },
|
||||
{ name = "attrs", marker = "python_version > '3.10'" },
|
||||
{ name = "attrs", marker = "python_version <= '3.10'" },
|
||||
{ name = "typing-extensions", marker = "python_full_version > '3.10'" },
|
||||
{ name = "attrs", marker = "python_version > '3.10'" },
|
||||
{ name = "iniconfig", marker = "python_version < '3.10'" },
|
||||
{ name = "iniconfig", marker = "python_version >= '3.10'" },
|
||||
{ name = "typing-extensions", marker = "python_full_version <= '3.10'" },
|
||||
{ name = "typing-extensions", marker = "python_full_version > '3.10'" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -4332,8 +4332,8 @@ fn lock_cycles() -> Result<()> {
|
|||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "testtools", specifier = "==2.3.0" },
|
||||
{ name = "fixtures", specifier = "==3.0.0" },
|
||||
{ name = "testtools", specifier = "==2.3.0" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -5176,8 +5176,8 @@ fn lock_same_version_multiple_urls() -> Result<()> {
|
|||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "dependency", marker = "sys_platform == 'darwin'", directory = "[TEMP_DIR]/v1" },
|
||||
{ name = "dependency", marker = "sys_platform != 'darwin'", directory = "[TEMP_DIR]/v2" },
|
||||
{ name = "dependency", marker = "sys_platform == 'darwin'", directory = "[TEMP_DIR]/v1" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -5450,8 +5450,8 @@ fn lock_dev_transitive() -> Result<()> {
|
|||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "foo", directory = "../foo" },
|
||||
{ name = "baz", editable = "baz" },
|
||||
{ name = "foo", directory = "../foo" },
|
||||
{ name = "iniconfig", specifier = ">1" },
|
||||
]
|
||||
|
||||
|
@ -7803,8 +7803,8 @@ fn lock_mixed_extras() -> Result<()> {
|
|||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "leaf1", editable = "packages/leaf1" },
|
||||
{ name = "workspace2", directory = "../workspace2" },
|
||||
{ name = "typing-extensions", marker = "extra == 'async'", specifier = ">=4" },
|
||||
{ name = "workspace2", directory = "../workspace2" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -7992,8 +7992,8 @@ fn lock_transitive_extra() -> Result<()> {
|
|||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "leaf", editable = "packages/leaf" },
|
||||
{ name = "typing-extensions", marker = "extra == 'async'", specifier = ">=4" },
|
||||
{ name = "leaf", extras = ["async"], marker = "extra == 'async'", editable = "packages/leaf" },
|
||||
{ name = "typing-extensions", marker = "extra == 'async'", specifier = ">=4" },
|
||||
]
|
||||
"###
|
||||
);
|
||||
|
@ -9377,3 +9377,137 @@ fn lock_missing_metadata() -> Result<()> {
|
|||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Lock a `pyproject.toml`, reorder the dependencies, and ensure that the lockfile is _not_ updated
|
||||
/// on the next run.
|
||||
#[test]
|
||||
fn lock_reorder() -> Result<()> {
|
||||
let context = TestContext::new("3.12");
|
||||
|
||||
let pyproject_toml = context.temp_dir.child("pyproject.toml");
|
||||
pyproject_toml.write_str(
|
||||
r#"
|
||||
[project]
|
||||
name = "project"
|
||||
version = "0.1.0"
|
||||
requires-python = ">=3.12"
|
||||
dependencies = ["anyio", "iniconfig"]
|
||||
"#,
|
||||
)?;
|
||||
|
||||
uv_snapshot!(context.filters(), context.lock(), @r###"
|
||||
success: true
|
||||
exit_code: 0
|
||||
----- stdout -----
|
||||
|
||||
----- stderr -----
|
||||
warning: `uv lock` is experimental and may change without warning
|
||||
Resolved 5 packages in [TIME]
|
||||
"###);
|
||||
|
||||
let lock = fs_err::read_to_string(context.temp_dir.join("uv.lock")).unwrap();
|
||||
|
||||
insta::with_settings!({
|
||||
filters => context.filters(),
|
||||
}, {
|
||||
assert_snapshot!(
|
||||
lock, @r###"
|
||||
version = 1
|
||||
requires-python = ">=3.12"
|
||||
|
||||
[options]
|
||||
exclude-newer = "2024-03-25 00:00:00 UTC"
|
||||
|
||||
[[package]]
|
||||
name = "anyio"
|
||||
version = "4.3.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "idna" },
|
||||
{ name = "sniffio" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/db/4d/3970183622f0330d3c23d9b8a5f52e365e50381fd484d08e3285104333d3/anyio-4.3.0.tar.gz", hash = "sha256:f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6", size = 159642 }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/14/fd/2f20c40b45e4fb4324834aea24bd4afdf1143390242c0b33774da0e2e34f/anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8", size = 85584 },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "idna"
|
||||
version = "3.6"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/bf/3f/ea4b9117521a1e9c50344b909be7886dd00a519552724809bb1f486986c2/idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca", size = 175426 }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f", size = 61567 },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "iniconfig"
|
||||
version = "2.0.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3", size = 4646 }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892 },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "project"
|
||||
version = "0.1.0"
|
||||
source = { editable = "." }
|
||||
dependencies = [
|
||||
{ name = "anyio" },
|
||||
{ name = "iniconfig" },
|
||||
]
|
||||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "anyio" },
|
||||
{ name = "iniconfig" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sniffio"
|
||||
version = "1.3.1"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372 }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 },
|
||||
]
|
||||
"###
|
||||
);
|
||||
});
|
||||
|
||||
// Re-run with `--locked`.
|
||||
uv_snapshot!(context.filters(), context.lock().arg("--locked"), @r###"
|
||||
success: true
|
||||
exit_code: 0
|
||||
----- stdout -----
|
||||
|
||||
----- stderr -----
|
||||
warning: `uv lock` is experimental and may change without warning
|
||||
Resolved 5 packages in [TIME]
|
||||
"###);
|
||||
|
||||
// Reorder the dependencies.
|
||||
pyproject_toml.write_str(
|
||||
r#"
|
||||
[project]
|
||||
name = "project"
|
||||
version = "0.1.0"
|
||||
requires-python = ">=3.12"
|
||||
dependencies = ["iniconfig", "anyio"]
|
||||
"#,
|
||||
)?;
|
||||
|
||||
// Re-run with `--locked`.
|
||||
uv_snapshot!(context.filters(), context.lock().arg("--locked"), @r###"
|
||||
success: true
|
||||
exit_code: 0
|
||||
----- stdout -----
|
||||
|
||||
----- stderr -----
|
||||
warning: `uv lock` is experimental and may change without warning
|
||||
Resolved 5 packages in [TIME]
|
||||
"###);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
|
|
@ -224,8 +224,8 @@ fn fork_allows_non_conflicting_repeated_dependencies() -> Result<()> {
|
|||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "package-a", specifier = ">=1" },
|
||||
{ name = "package-a", specifier = "<2" },
|
||||
{ name = "package-a", specifier = ">=1" },
|
||||
]
|
||||
"###
|
||||
);
|
||||
|
@ -3671,9 +3671,9 @@ fn preferences_dependent_forking_tristable() -> Result<()> {
|
|||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "package-bar" },
|
||||
{ name = "package-cleaver" },
|
||||
{ name = "package-foo" },
|
||||
{ name = "package-bar" },
|
||||
]
|
||||
"###
|
||||
);
|
||||
|
@ -3873,9 +3873,9 @@ fn preferences_dependent_forking() -> Result<()> {
|
|||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "package-bar" },
|
||||
{ name = "package-cleaver" },
|
||||
{ name = "package-foo" },
|
||||
{ name = "package-bar" },
|
||||
]
|
||||
"###
|
||||
);
|
||||
|
|
|
@ -204,18 +204,18 @@ uvloop = [
|
|||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "aiohttp", marker = "implementation_name == 'pypy' and sys_platform == 'win32' and extra == 'd'", specifier = "!=3.9.0,>=3.7.4" },
|
||||
{ name = "aiohttp", marker = "(implementation_name != 'pypy' and extra == 'd') or (sys_platform != 'win32' and extra == 'd')", specifier = ">=3.7.4" },
|
||||
{ name = "click", specifier = ">=8.0.0" },
|
||||
{ name = "colorama", marker = "extra == 'colorama'", specifier = ">=0.4.3" },
|
||||
{ name = "ipython", marker = "extra == 'jupyter'", specifier = ">=7.8.0" },
|
||||
{ name = "mypy-extensions", specifier = ">=0.4.3" },
|
||||
{ name = "packaging", specifier = ">=22.0" },
|
||||
{ name = "pathspec", specifier = ">=0.9.0" },
|
||||
{ name = "platformdirs", specifier = ">=2" },
|
||||
{ name = "tokenize-rt", marker = "extra == 'jupyter'", specifier = ">=3.2.0" },
|
||||
{ name = "tomli", marker = "python_version < '3.11'", specifier = ">=1.1.0" },
|
||||
{ name = "typing-extensions", marker = "python_version < '3.11'", specifier = ">=4.0.1" },
|
||||
{ name = "colorama", marker = "extra == 'colorama'", specifier = ">=0.4.3" },
|
||||
{ name = "aiohttp", marker = "implementation_name == 'pypy' and sys_platform == 'win32' and extra == 'd'", specifier = "!=3.9.0,>=3.7.4" },
|
||||
{ name = "aiohttp", marker = "(implementation_name != 'pypy' and extra == 'd') or (sys_platform != 'win32' and extra == 'd')", specifier = ">=3.7.4" },
|
||||
{ name = "ipython", marker = "extra == 'jupyter'", specifier = ">=7.8.0" },
|
||||
{ name = "tokenize-rt", marker = "extra == 'jupyter'", specifier = ">=3.2.0" },
|
||||
{ name = "uvloop", marker = "extra == 'uvloop'", specifier = ">=0.15.2" },
|
||||
]
|
||||
|
||||
|
|
|
@ -672,27 +672,27 @@ requires-dist = [
|
|||
{ name = "aiozoneinfo", specifier = "==0.2.0" },
|
||||
{ name = "astral", specifier = "==2.2" },
|
||||
{ name = "async-interrupt", specifier = "==1.1.1" },
|
||||
{ name = "attrs", specifier = "==23.2.0" },
|
||||
{ name = "atomicwrites-homeassistant", specifier = "==1.4.1" },
|
||||
{ name = "attrs", specifier = "==23.2.0" },
|
||||
{ name = "awesomeversion", specifier = "==24.2.0" },
|
||||
{ name = "bcrypt", specifier = "==4.1.2" },
|
||||
{ name = "certifi", specifier = ">=2021.5.30" },
|
||||
{ name = "ciso8601", specifier = "==2.3.1" },
|
||||
{ name = "cryptography", specifier = "==42.0.8" },
|
||||
{ name = "fnv-hash-fast", specifier = "==0.5.0" },
|
||||
{ name = "hass-nabucasa", specifier = "==0.81.1" },
|
||||
{ name = "httpx", specifier = "==0.27.0" },
|
||||
{ name = "home-assistant-bluetooth", specifier = "==1.12.1" },
|
||||
{ name = "httpx", specifier = "==0.27.0" },
|
||||
{ name = "ifaddr", specifier = "==0.2.0" },
|
||||
{ name = "jinja2", specifier = "==3.1.4" },
|
||||
{ name = "lru-dict", specifier = "==1.3.0" },
|
||||
{ name = "pyjwt", specifier = "==2.8.0" },
|
||||
{ name = "cryptography", specifier = "==42.0.8" },
|
||||
{ name = "pillow", specifier = "==10.3.0" },
|
||||
{ name = "pyopenssl", specifier = "==24.1.0" },
|
||||
{ name = "orjson", specifier = "==3.9.15" },
|
||||
{ name = "packaging", specifier = ">=23.1" },
|
||||
{ name = "pillow", specifier = "==10.3.0" },
|
||||
{ name = "pip", specifier = ">=21.3.1" },
|
||||
{ name = "psutil-home-assistant", specifier = "==0.0.1" },
|
||||
{ name = "pyjwt", specifier = "==2.8.0" },
|
||||
{ name = "pyopenssl", specifier = "==24.1.0" },
|
||||
{ name = "python-slugify", specifier = "==8.0.4" },
|
||||
{ name = "pyyaml", specifier = "==6.0.1" },
|
||||
{ name = "requests", specifier = "==2.32.3" },
|
||||
|
|
|
@ -355,22 +355,22 @@ dev = [
|
|||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "msgspec", specifier = ">=0.18.4" },
|
||||
{ name = "twine", specifier = ">=4.0.2" },
|
||||
{ name = "hatchling", specifier = ">=1.20.0" },
|
||||
{ name = "chevron-blue", specifier = ">=0.2.1" },
|
||||
{ name = "setuptools", specifier = ">=69.1.1" },
|
||||
{ name = "pyyaml", specifier = ">=6.0.1" },
|
||||
{ name = "pypiserver", marker = "extra == 'index'", specifier = ">=2.0.1" },
|
||||
{ name = "hatchling", specifier = ">=1.20.0" },
|
||||
{ name = "msgspec", specifier = ">=0.18.4" },
|
||||
{ name = "packse", extras = ["index"], marker = "extra == 'serve'" },
|
||||
{ name = "pypiserver", marker = "extra == 'index'", specifier = ">=2.0.1" },
|
||||
{ name = "pyyaml", specifier = ">=6.0.1" },
|
||||
{ name = "setuptools", specifier = ">=69.1.1" },
|
||||
{ name = "twine", specifier = ">=4.0.2" },
|
||||
{ name = "watchfiles", marker = "extra == 'serve'", specifier = ">=0.21.0" },
|
||||
]
|
||||
|
||||
[package.metadata.requires-dev]
|
||||
dev = [
|
||||
{ name = "syrupy", specifier = ">=4.6.0" },
|
||||
{ name = "pytest", specifier = ">=7.4.3" },
|
||||
{ name = "psutil", specifier = ">=5.9.7" },
|
||||
{ name = "pytest", specifier = ">=7.4.3" },
|
||||
{ name = "syrupy", specifier = ">=4.6.0" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
|
@ -5868,276 +5868,269 @@ vision = [
|
|||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "filelock" },
|
||||
{ name = "huggingface-hub", specifier = ">=0.19.3,<1.0" },
|
||||
{ name = "numpy", specifier = ">=1.17" },
|
||||
{ name = "packaging", specifier = ">=20.0" },
|
||||
{ name = "pyyaml", specifier = ">=5.1" },
|
||||
{ name = "regex", specifier = "!=2019.12.17" },
|
||||
{ name = "requests" },
|
||||
{ name = "tokenizers", specifier = ">=0.14,<0.19" },
|
||||
{ name = "safetensors", specifier = ">=0.4.1" },
|
||||
{ name = "tqdm", specifier = ">=4.27" },
|
||||
{ name = "fugashi", marker = "extra == 'ja'", specifier = ">=1.0" },
|
||||
{ name = "ipadic", marker = "extra == 'ja'", specifier = ">=1.0.0,<2.0" },
|
||||
{ name = "unidic-lite", marker = "extra == 'ja'", specifier = ">=1.0.7" },
|
||||
{ name = "unidic", marker = "extra == 'ja'", specifier = ">=1.0.2" },
|
||||
{ name = "sudachipy", marker = "extra == 'ja'", specifier = ">=0.6.6" },
|
||||
{ name = "sudachidict-core", marker = "extra == 'ja'", specifier = ">=20220729" },
|
||||
{ name = "rhoknp", marker = "extra == 'ja'", specifier = ">=1.1.0,<1.3.1" },
|
||||
{ name = "scikit-learn", marker = "extra == 'sklearn'" },
|
||||
{ name = "tensorflow", marker = "extra == 'tf'", specifier = ">=2.6,<2.16" },
|
||||
{ name = "onnxconverter-common", marker = "extra == 'tf'" },
|
||||
{ name = "tf2onnx", marker = "extra == 'tf'" },
|
||||
{ name = "tensorflow-text", marker = "extra == 'tf'", specifier = "<2.16" },
|
||||
{ name = "keras-nlp", marker = "extra == 'tf'", specifier = ">=0.3.1" },
|
||||
{ name = "tensorflow-cpu", marker = "extra == 'tf-cpu'", specifier = ">=2.6,<2.16" },
|
||||
{ name = "onnxconverter-common", marker = "extra == 'tf-cpu'" },
|
||||
{ name = "tf2onnx", marker = "extra == 'tf-cpu'" },
|
||||
{ name = "tensorflow-text", marker = "extra == 'tf-cpu'", specifier = "<2.16" },
|
||||
{ name = "keras-nlp", marker = "extra == 'tf-cpu'", specifier = ">=0.3.1" },
|
||||
{ name = "torch", marker = "extra == 'torch'" },
|
||||
{ name = "accelerate", marker = "extra == 'torch'", specifier = ">=0.21.0" },
|
||||
{ name = "accelerate", marker = "extra == 'accelerate'", specifier = ">=0.21.0" },
|
||||
{ name = "faiss-cpu", marker = "extra == 'retrieval'" },
|
||||
{ name = "datasets", marker = "extra == 'retrieval'", specifier = "!=2.5.0" },
|
||||
{ name = "jax", marker = "extra == 'flax'", specifier = ">=0.4.1,<=0.4.13" },
|
||||
{ name = "jaxlib", marker = "extra == 'flax'", specifier = ">=0.4.1,<=0.4.13" },
|
||||
{ name = "flax", marker = "extra == 'flax'", specifier = ">=0.4.1,<=0.7.0" },
|
||||
{ name = "optax", marker = "extra == 'flax'", specifier = ">=0.0.8,<=0.1.4" },
|
||||
{ name = "tokenizers", marker = "extra == 'tokenizers'", specifier = ">=0.14,<0.19" },
|
||||
{ name = "ftfy", marker = "extra == 'ftfy'" },
|
||||
{ name = "onnxruntime", marker = "extra == 'onnxruntime'", specifier = ">=1.4.0" },
|
||||
{ name = "onnxruntime-tools", marker = "extra == 'onnxruntime'", specifier = ">=1.4.2" },
|
||||
{ name = "onnxconverter-common", marker = "extra == 'onnx'" },
|
||||
{ name = "tf2onnx", marker = "extra == 'onnx'" },
|
||||
{ name = "onnxruntime", marker = "extra == 'onnx'", specifier = ">=1.4.0" },
|
||||
{ name = "onnxruntime-tools", marker = "extra == 'onnx'", specifier = ">=1.4.2" },
|
||||
{ name = "cookiecutter", marker = "extra == 'modelcreation'", specifier = "==1.7.3" },
|
||||
{ name = "sagemaker", marker = "extra == 'sagemaker'", specifier = "==2.226.1" },
|
||||
{ name = "deepspeed", marker = "extra == 'deepspeed'", specifier = ">=0.9.3" },
|
||||
{ name = "accelerate", marker = "extra == 'deepspeed'", specifier = ">=0.21.0" },
|
||||
{ name = "optuna", marker = "extra == 'optuna'" },
|
||||
{ name = "ray", extras = ["tune"], marker = "extra == 'ray'", specifier = ">=2.7.0" },
|
||||
{ name = "sigopt", marker = "extra == 'sigopt'" },
|
||||
{ name = "optuna", marker = "extra == 'integrations'" },
|
||||
{ name = "ray", extras = ["tune"], marker = "extra == 'integrations'", specifier = ">=2.7.0" },
|
||||
{ name = "sigopt", marker = "extra == 'integrations'" },
|
||||
{ name = "pydantic", marker = "extra == 'serving'" },
|
||||
{ name = "uvicorn", marker = "extra == 'serving'" },
|
||||
{ name = "fastapi", marker = "extra == 'serving'" },
|
||||
{ name = "starlette", marker = "extra == 'serving'" },
|
||||
{ name = "librosa", marker = "extra == 'audio'" },
|
||||
{ name = "pyctcdecode", marker = "extra == 'audio'", specifier = ">=0.4.0" },
|
||||
{ name = "phonemizer", marker = "extra == 'audio'" },
|
||||
{ name = "kenlm", marker = "extra == 'audio'" },
|
||||
{ name = "torchaudio", marker = "extra == 'speech'" },
|
||||
{ name = "librosa", marker = "extra == 'speech'" },
|
||||
{ name = "pyctcdecode", marker = "extra == 'speech'", specifier = ">=0.4.0" },
|
||||
{ name = "phonemizer", marker = "extra == 'speech'" },
|
||||
{ name = "kenlm", marker = "extra == 'speech'" },
|
||||
{ name = "torchaudio", marker = "extra == 'torch-speech'" },
|
||||
{ name = "librosa", marker = "extra == 'torch-speech'" },
|
||||
{ name = "pyctcdecode", marker = "extra == 'torch-speech'", specifier = ">=0.4.0" },
|
||||
{ name = "phonemizer", marker = "extra == 'torch-speech'" },
|
||||
{ name = "kenlm", marker = "extra == 'torch-speech'" },
|
||||
{ name = "librosa", marker = "extra == 'tf-speech'" },
|
||||
{ name = "pyctcdecode", marker = "extra == 'tf-speech'", specifier = ">=0.4.0" },
|
||||
{ name = "phonemizer", marker = "extra == 'tf-speech'" },
|
||||
{ name = "kenlm", marker = "extra == 'tf-speech'" },
|
||||
{ name = "librosa", marker = "extra == 'flax-speech'" },
|
||||
{ name = "pyctcdecode", marker = "extra == 'flax-speech'", specifier = ">=0.4.0" },
|
||||
{ name = "phonemizer", marker = "extra == 'flax-speech'" },
|
||||
{ name = "kenlm", marker = "extra == 'flax-speech'" },
|
||||
{ name = "pillow", marker = "extra == 'vision'", specifier = ">=10.0.1,<=15.0" },
|
||||
{ name = "timm", marker = "extra == 'timm'" },
|
||||
{ name = "torchvision", marker = "extra == 'torch-vision'" },
|
||||
{ name = "pillow", marker = "extra == 'torch-vision'", specifier = ">=10.0.1,<=15.0" },
|
||||
{ name = "codecarbon", marker = "extra == 'codecarbon'", specifier = "==1.2.0" },
|
||||
{ name = "decord", marker = "extra == 'video'", specifier = "==0.6.0" },
|
||||
{ name = "av", marker = "extra == 'video'", specifier = "==9.2.0" },
|
||||
{ name = "sentencepiece", marker = "extra == 'sentencepiece'", specifier = ">=0.1.91,!=0.1.92" },
|
||||
{ name = "protobuf", marker = "extra == 'sentencepiece'" },
|
||||
{ name = "deepspeed", marker = "extra == 'deepspeed-testing'", specifier = ">=0.9.3" },
|
||||
{ name = "accelerate", marker = "extra == 'deepspeed-testing'", specifier = ">=0.21.0" },
|
||||
{ name = "pytest", marker = "extra == 'deepspeed-testing'", specifier = ">=7.2.0,<8.0.0" },
|
||||
{ name = "pytest-xdist", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "timeout-decorator", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "parameterized", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "psutil", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "datasets", marker = "extra == 'deepspeed-testing'", specifier = "!=2.5.0" },
|
||||
{ name = "dill", marker = "extra == 'deepspeed-testing'", specifier = "<0.3.5" },
|
||||
{ name = "evaluate", marker = "extra == 'deepspeed-testing'", specifier = ">=0.2.0" },
|
||||
{ name = "pytest-timeout", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "ruff", marker = "extra == 'deepspeed-testing'", specifier = "==0.1.5" },
|
||||
{ name = "sacrebleu", marker = "extra == 'deepspeed-testing'", specifier = ">=1.4.12,<2.0.0" },
|
||||
{ name = "rouge-score", marker = "extra == 'deepspeed-testing'", specifier = "!=0.0.7,!=0.0.8,!=0.1,!=0.1.1" },
|
||||
{ name = "nltk", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "gitpython", marker = "extra == 'deepspeed-testing'", specifier = "<3.1.19" },
|
||||
{ name = "hf-doc-builder", marker = "extra == 'deepspeed-testing'", specifier = ">=0.3.0" },
|
||||
{ name = "protobuf", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "sacremoses", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "rjieba", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "beautifulsoup4", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "tensorboard", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "pydantic", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "faiss-cpu", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "datasets", marker = "extra == 'deepspeed-testing'", specifier = "!=2.5.0" },
|
||||
{ name = "cookiecutter", marker = "extra == 'deepspeed-testing'", specifier = "==1.7.3" },
|
||||
{ name = "optuna", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "sentencepiece", marker = "extra == 'deepspeed-testing'", specifier = ">=0.1.91,!=0.1.92" },
|
||||
{ name = "protobuf", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "datasets", marker = "extra == 'quality'", specifier = "!=2.5.0" },
|
||||
{ name = "isort", marker = "extra == 'quality'", specifier = ">=5.5.4" },
|
||||
{ name = "ruff", marker = "extra == 'quality'", specifier = "==0.1.5" },
|
||||
{ name = "gitpython", marker = "extra == 'quality'", specifier = "<3.1.19" },
|
||||
{ name = "hf-doc-builder", marker = "extra == 'quality'", specifier = ">=0.3.0" },
|
||||
{ name = "urllib3", marker = "extra == 'quality'", specifier = "<2.0.0" },
|
||||
{ name = "tensorflow", marker = "extra == 'all'", specifier = ">=2.6,<2.16" },
|
||||
{ name = "onnxconverter-common", marker = "extra == 'all'" },
|
||||
{ name = "tf2onnx", marker = "extra == 'all'" },
|
||||
{ name = "tensorflow-text", marker = "extra == 'all'", specifier = "<2.16" },
|
||||
{ name = "keras-nlp", marker = "extra == 'all'", specifier = ">=0.3.1" },
|
||||
{ name = "torch", marker = "extra == 'all'" },
|
||||
{ name = "accelerate", marker = "extra == 'all'", specifier = ">=0.21.0" },
|
||||
{ name = "jax", marker = "extra == 'all'", specifier = ">=0.4.1,<=0.4.13" },
|
||||
{ name = "jaxlib", marker = "extra == 'all'", specifier = ">=0.4.1,<=0.4.13" },
|
||||
{ name = "flax", marker = "extra == 'all'", specifier = ">=0.4.1,<=0.7.0" },
|
||||
{ name = "optax", marker = "extra == 'all'", specifier = ">=0.0.8,<=0.1.4" },
|
||||
{ name = "sentencepiece", marker = "extra == 'all'", specifier = ">=0.1.91,!=0.1.92" },
|
||||
{ name = "protobuf", marker = "extra == 'all'" },
|
||||
{ name = "tokenizers", marker = "extra == 'all'", specifier = ">=0.14,<0.19" },
|
||||
{ name = "torchaudio", marker = "extra == 'all'" },
|
||||
{ name = "librosa", marker = "extra == 'all'" },
|
||||
{ name = "pyctcdecode", marker = "extra == 'all'", specifier = ">=0.4.0" },
|
||||
{ name = "phonemizer", marker = "extra == 'all'" },
|
||||
{ name = "kenlm", marker = "extra == 'all'" },
|
||||
{ name = "pillow", marker = "extra == 'all'", specifier = ">=10.0.1,<=15.0" },
|
||||
{ name = "optuna", marker = "extra == 'all'" },
|
||||
{ name = "ray", extras = ["tune"], marker = "extra == 'all'", specifier = ">=2.7.0" },
|
||||
{ name = "sigopt", marker = "extra == 'all'" },
|
||||
{ name = "timm", marker = "extra == 'all'" },
|
||||
{ name = "torchvision", marker = "extra == 'all'" },
|
||||
{ name = "pillow", marker = "extra == 'all'", specifier = ">=10.0.1,<=15.0" },
|
||||
{ name = "codecarbon", marker = "extra == 'all'", specifier = "==1.2.0" },
|
||||
{ name = "accelerate", marker = "extra == 'all'", specifier = ">=0.21.0" },
|
||||
{ name = "decord", marker = "extra == 'all'", specifier = "==0.6.0" },
|
||||
{ name = "av", marker = "extra == 'all'", specifier = "==9.2.0" },
|
||||
{ name = "hf-doc-builder", marker = "extra == 'docs-specific'" },
|
||||
{ name = "tensorflow", marker = "extra == 'docs'", specifier = ">=2.6,<2.16" },
|
||||
{ name = "onnxconverter-common", marker = "extra == 'docs'" },
|
||||
{ name = "tf2onnx", marker = "extra == 'docs'" },
|
||||
{ name = "tensorflow-text", marker = "extra == 'docs'", specifier = "<2.16" },
|
||||
{ name = "keras-nlp", marker = "extra == 'docs'", specifier = ">=0.3.1" },
|
||||
{ name = "torch", marker = "extra == 'docs'" },
|
||||
{ name = "accelerate", marker = "extra == 'docs'", specifier = ">=0.21.0" },
|
||||
{ name = "jax", marker = "extra == 'docs'", specifier = ">=0.4.1,<=0.4.13" },
|
||||
{ name = "jaxlib", marker = "extra == 'docs'", specifier = ">=0.4.1,<=0.4.13" },
|
||||
{ name = "flax", marker = "extra == 'docs'", specifier = ">=0.4.1,<=0.7.0" },
|
||||
{ name = "optax", marker = "extra == 'docs'", specifier = ">=0.0.8,<=0.1.4" },
|
||||
{ name = "sentencepiece", marker = "extra == 'docs'", specifier = ">=0.1.91,!=0.1.92" },
|
||||
{ name = "protobuf", marker = "extra == 'docs'" },
|
||||
{ name = "tokenizers", marker = "extra == 'docs'", specifier = ">=0.14,<0.19" },
|
||||
{ name = "torchaudio", marker = "extra == 'docs'" },
|
||||
{ name = "librosa", marker = "extra == 'docs'" },
|
||||
{ name = "pyctcdecode", marker = "extra == 'docs'", specifier = ">=0.4.0" },
|
||||
{ name = "phonemizer", marker = "extra == 'docs'" },
|
||||
{ name = "kenlm", marker = "extra == 'docs'" },
|
||||
{ name = "pillow", marker = "extra == 'docs'", specifier = ">=10.0.1,<=15.0" },
|
||||
{ name = "optuna", marker = "extra == 'docs'" },
|
||||
{ name = "ray", extras = ["tune"], marker = "extra == 'docs'", specifier = ">=2.7.0" },
|
||||
{ name = "sigopt", marker = "extra == 'docs'" },
|
||||
{ name = "timm", marker = "extra == 'docs'" },
|
||||
{ name = "torchvision", marker = "extra == 'docs'" },
|
||||
{ name = "pillow", marker = "extra == 'docs'", specifier = ">=10.0.1,<=15.0" },
|
||||
{ name = "codecarbon", marker = "extra == 'docs'", specifier = "==1.2.0" },
|
||||
{ name = "accelerate", marker = "extra == 'docs'", specifier = ">=0.21.0" },
|
||||
{ name = "decord", marker = "extra == 'docs'", specifier = "==0.6.0" },
|
||||
{ name = "av", marker = "extra == 'docs'", specifier = "==9.2.0" },
|
||||
{ name = "hf-doc-builder", marker = "extra == 'docs'" },
|
||||
{ name = "filelock", marker = "extra == 'torchhub'" },
|
||||
{ name = "huggingface-hub", marker = "extra == 'torchhub'", specifier = ">=0.19.3,<1.0" },
|
||||
{ name = "importlib-metadata", marker = "extra == 'torchhub'" },
|
||||
{ name = "numpy", marker = "extra == 'torchhub'", specifier = ">=1.17" },
|
||||
{ name = "packaging", marker = "extra == 'torchhub'", specifier = ">=20.0" },
|
||||
{ name = "protobuf", marker = "extra == 'torchhub'" },
|
||||
{ name = "regex", marker = "extra == 'torchhub'", specifier = "!=2019.12.17" },
|
||||
{ name = "requests", marker = "extra == 'torchhub'" },
|
||||
{ name = "sentencepiece", marker = "extra == 'torchhub'", specifier = ">=0.1.91,!=0.1.92" },
|
||||
{ name = "torch", marker = "extra == 'torchhub'" },
|
||||
{ name = "tokenizers", marker = "extra == 'torchhub'", specifier = ">=0.14,<0.19" },
|
||||
{ name = "tqdm", marker = "extra == 'torchhub'", specifier = ">=4.27" },
|
||||
{ name = "diffusers", marker = "extra == 'agents'" },
|
||||
{ name = "accelerate", marker = "extra == 'agents'", specifier = ">=0.21.0" },
|
||||
{ name = "datasets", marker = "extra == 'agents'", specifier = "!=2.5.0" },
|
||||
{ name = "torch", marker = "extra == 'agents'" },
|
||||
{ name = "sentencepiece", marker = "extra == 'agents'", specifier = ">=0.1.91,!=0.1.92" },
|
||||
{ name = "opencv-python", marker = "extra == 'agents'" },
|
||||
{ name = "pillow", marker = "extra == 'agents'", specifier = ">=10.0.1,<=15.0" },
|
||||
{ name = "gitpython", marker = "extra == 'dev-dependencies'", specifier = "<3.1.19" },
|
||||
{ name = "pillow", marker = "extra == 'dev-dependencies'", specifier = ">=10.0.1,<=15.0" },
|
||||
{ name = "accelerate", marker = "extra == 'dev-dependencies'", specifier = ">=0.21.0" },
|
||||
{ name = "av", marker = "extra == 'video'", specifier = "==9.2.0" },
|
||||
{ name = "av", marker = "extra == 'all'", specifier = "==9.2.0" },
|
||||
{ name = "av", marker = "extra == 'docs'", specifier = "==9.2.0" },
|
||||
{ name = "av", marker = "extra == 'dev-dependencies'", specifier = "==9.2.0" },
|
||||
{ name = "beautifulsoup4", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "beautifulsoup4", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "codecarbon", marker = "extra == 'codecarbon'", specifier = "==1.2.0" },
|
||||
{ name = "codecarbon", marker = "extra == 'all'", specifier = "==1.2.0" },
|
||||
{ name = "codecarbon", marker = "extra == 'docs'", specifier = "==1.2.0" },
|
||||
{ name = "codecarbon", marker = "extra == 'dev-dependencies'", specifier = "==1.2.0" },
|
||||
{ name = "codecarbon", marker = "extra == 'dev-dependencies'", specifier = "==1.2.0" },
|
||||
{ name = "cookiecutter", marker = "extra == 'modelcreation'", specifier = "==1.7.3" },
|
||||
{ name = "cookiecutter", marker = "extra == 'deepspeed-testing'", specifier = "==1.7.3" },
|
||||
{ name = "cookiecutter", marker = "extra == 'dev-dependencies'", specifier = "==1.7.3" },
|
||||
{ name = "datasets", marker = "extra == 'retrieval'", specifier = "!=2.5.0" },
|
||||
{ name = "datasets", marker = "extra == 'deepspeed-testing'", specifier = "!=2.5.0" },
|
||||
{ name = "datasets", marker = "extra == 'quality'", specifier = "!=2.5.0" },
|
||||
{ name = "datasets", marker = "extra == 'agents'", specifier = "!=2.5.0" },
|
||||
{ name = "datasets", marker = "extra == 'dev-dependencies'", specifier = "!=2.5.0" },
|
||||
{ name = "decord", marker = "extra == 'video'", specifier = "==0.6.0" },
|
||||
{ name = "decord", marker = "extra == 'all'", specifier = "==0.6.0" },
|
||||
{ name = "decord", marker = "extra == 'docs'", specifier = "==0.6.0" },
|
||||
{ name = "decord", marker = "extra == 'dev-dependencies'", specifier = "==0.6.0" },
|
||||
{ name = "deepspeed", marker = "extra == 'deepspeed'", specifier = ">=0.9.3" },
|
||||
{ name = "deepspeed", marker = "extra == 'deepspeed-testing'", specifier = ">=0.9.3" },
|
||||
{ name = "diffusers", marker = "extra == 'agents'" },
|
||||
{ name = "dill", marker = "extra == 'deepspeed-testing'", specifier = "<0.3.5" },
|
||||
{ name = "dill", marker = "extra == 'dev-dependencies'", specifier = "<0.3.5" },
|
||||
{ name = "evaluate", marker = "extra == 'deepspeed-testing'", specifier = ">=0.2.0" },
|
||||
{ name = "evaluate", marker = "extra == 'dev-dependencies'", specifier = ">=0.2.0" },
|
||||
{ name = "faiss-cpu", marker = "extra == 'retrieval'" },
|
||||
{ name = "faiss-cpu", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "faiss-cpu", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "fastapi", marker = "extra == 'serving'" },
|
||||
{ name = "filelock" },
|
||||
{ name = "filelock", marker = "extra == 'torchhub'" },
|
||||
{ name = "flax", marker = "extra == 'flax'", specifier = ">=0.4.1,<=0.7.0" },
|
||||
{ name = "flax", marker = "extra == 'all'", specifier = ">=0.4.1,<=0.7.0" },
|
||||
{ name = "flax", marker = "extra == 'docs'", specifier = ">=0.4.1,<=0.7.0" },
|
||||
{ name = "flax", marker = "extra == 'dev-dependencies'", specifier = ">=0.4.1,<=0.7.0" },
|
||||
{ name = "ftfy", marker = "extra == 'ftfy'" },
|
||||
{ name = "fugashi", marker = "extra == 'ja'", specifier = ">=1.0" },
|
||||
{ name = "fugashi", marker = "extra == 'dev-dependencies'", specifier = ">=1.0" },
|
||||
{ name = "gitpython", marker = "extra == 'deepspeed-testing'", specifier = "<3.1.19" },
|
||||
{ name = "gitpython", marker = "extra == 'quality'", specifier = "<3.1.19" },
|
||||
{ name = "gitpython", marker = "extra == 'dev-dependencies'", specifier = "<3.1.19" },
|
||||
{ name = "hf-doc-builder", marker = "extra == 'deepspeed-testing'", specifier = ">=0.3.0" },
|
||||
{ name = "hf-doc-builder", marker = "extra == 'quality'", specifier = ">=0.3.0" },
|
||||
{ name = "hf-doc-builder", marker = "extra == 'docs-specific'" },
|
||||
{ name = "hf-doc-builder", marker = "extra == 'docs'" },
|
||||
{ name = "hf-doc-builder", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "hf-doc-builder", marker = "extra == 'dev-dependencies'", specifier = ">=0.3.0" },
|
||||
{ name = "huggingface-hub", specifier = ">=0.19.3,<1.0" },
|
||||
{ name = "huggingface-hub", marker = "extra == 'torchhub'", specifier = ">=0.19.3,<1.0" },
|
||||
{ name = "importlib-metadata", marker = "extra == 'torchhub'" },
|
||||
{ name = "ipadic", marker = "extra == 'ja'", specifier = ">=1.0.0,<2.0" },
|
||||
{ name = "ipadic", marker = "extra == 'dev-dependencies'", specifier = ">=1.0.0,<2.0" },
|
||||
{ name = "isort", marker = "extra == 'quality'", specifier = ">=5.5.4" },
|
||||
{ name = "isort", marker = "extra == 'dev-dependencies'", specifier = ">=5.5.4" },
|
||||
{ name = "jax", marker = "extra == 'flax'", specifier = ">=0.4.1,<=0.4.13" },
|
||||
{ name = "jax", marker = "extra == 'all'", specifier = ">=0.4.1,<=0.4.13" },
|
||||
{ name = "jax", marker = "extra == 'docs'", specifier = ">=0.4.1,<=0.4.13" },
|
||||
{ name = "jax", marker = "extra == 'dev-dependencies'", specifier = ">=0.4.1,<=0.4.13" },
|
||||
{ name = "jaxlib", marker = "extra == 'flax'", specifier = ">=0.4.1,<=0.4.13" },
|
||||
{ name = "jaxlib", marker = "extra == 'all'", specifier = ">=0.4.1,<=0.4.13" },
|
||||
{ name = "jaxlib", marker = "extra == 'docs'", specifier = ">=0.4.1,<=0.4.13" },
|
||||
{ name = "jaxlib", marker = "extra == 'dev-dependencies'", specifier = ">=0.4.1,<=0.4.13" },
|
||||
{ name = "kenlm", marker = "extra == 'audio'" },
|
||||
{ name = "kenlm", marker = "extra == 'speech'" },
|
||||
{ name = "kenlm", marker = "extra == 'torch-speech'" },
|
||||
{ name = "kenlm", marker = "extra == 'tf-speech'" },
|
||||
{ name = "kenlm", marker = "extra == 'flax-speech'" },
|
||||
{ name = "kenlm", marker = "extra == 'all'" },
|
||||
{ name = "kenlm", marker = "extra == 'docs'" },
|
||||
{ name = "kenlm", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "keras-nlp", marker = "extra == 'tf'", specifier = ">=0.3.1" },
|
||||
{ name = "keras-nlp", marker = "extra == 'tf-cpu'", specifier = ">=0.3.1" },
|
||||
{ name = "keras-nlp", marker = "extra == 'all'", specifier = ">=0.3.1" },
|
||||
{ name = "keras-nlp", marker = "extra == 'docs'", specifier = ">=0.3.1" },
|
||||
{ name = "keras-nlp", marker = "extra == 'dev-dependencies'", specifier = ">=0.3.1" },
|
||||
{ name = "librosa", marker = "extra == 'audio'" },
|
||||
{ name = "librosa", marker = "extra == 'speech'" },
|
||||
{ name = "librosa", marker = "extra == 'torch-speech'" },
|
||||
{ name = "librosa", marker = "extra == 'tf-speech'" },
|
||||
{ name = "librosa", marker = "extra == 'flax-speech'" },
|
||||
{ name = "librosa", marker = "extra == 'all'" },
|
||||
{ name = "librosa", marker = "extra == 'docs'" },
|
||||
{ name = "librosa", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "nltk", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "nltk", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "numpy", specifier = ">=1.17" },
|
||||
{ name = "numpy", marker = "extra == 'torchhub'", specifier = ">=1.17" },
|
||||
{ name = "onnxconverter-common", marker = "extra == 'tf'" },
|
||||
{ name = "onnxconverter-common", marker = "extra == 'tf-cpu'" },
|
||||
{ name = "onnxconverter-common", marker = "extra == 'onnx'" },
|
||||
{ name = "onnxconverter-common", marker = "extra == 'all'" },
|
||||
{ name = "onnxconverter-common", marker = "extra == 'docs'" },
|
||||
{ name = "onnxconverter-common", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "onnxruntime-tools", marker = "extra == 'dev-dependencies'", specifier = ">=1.4.2" },
|
||||
{ name = "onnxruntime", marker = "extra == 'onnxruntime'", specifier = ">=1.4.0" },
|
||||
{ name = "onnxruntime", marker = "extra == 'onnx'", specifier = ">=1.4.0" },
|
||||
{ name = "onnxruntime", marker = "extra == 'dev-dependencies'", specifier = ">=1.4.0" },
|
||||
{ name = "onnxruntime-tools", marker = "extra == 'onnxruntime'", specifier = ">=1.4.2" },
|
||||
{ name = "onnxruntime-tools", marker = "extra == 'onnx'", specifier = ">=1.4.2" },
|
||||
{ name = "onnxruntime-tools", marker = "extra == 'dev-dependencies'", specifier = ">=1.4.2" },
|
||||
{ name = "opencv-python", marker = "extra == 'agents'" },
|
||||
{ name = "optax", marker = "extra == 'flax'", specifier = ">=0.0.8,<=0.1.4" },
|
||||
{ name = "optax", marker = "extra == 'all'", specifier = ">=0.0.8,<=0.1.4" },
|
||||
{ name = "optax", marker = "extra == 'docs'", specifier = ">=0.0.8,<=0.1.4" },
|
||||
{ name = "optax", marker = "extra == 'dev-dependencies'", specifier = ">=0.0.8,<=0.1.4" },
|
||||
{ name = "optuna", marker = "extra == 'optuna'" },
|
||||
{ name = "optuna", marker = "extra == 'integrations'" },
|
||||
{ name = "optuna", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "optuna", marker = "extra == 'all'" },
|
||||
{ name = "optuna", marker = "extra == 'docs'" },
|
||||
{ name = "optuna", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "packaging", specifier = ">=20.0" },
|
||||
{ name = "packaging", marker = "extra == 'torchhub'", specifier = ">=20.0" },
|
||||
{ name = "parameterized", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "parameterized", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "phonemizer", marker = "extra == 'audio'" },
|
||||
{ name = "phonemizer", marker = "extra == 'speech'" },
|
||||
{ name = "phonemizer", marker = "extra == 'torch-speech'" },
|
||||
{ name = "phonemizer", marker = "extra == 'tf-speech'" },
|
||||
{ name = "phonemizer", marker = "extra == 'flax-speech'" },
|
||||
{ name = "phonemizer", marker = "extra == 'all'" },
|
||||
{ name = "phonemizer", marker = "extra == 'docs'" },
|
||||
{ name = "phonemizer", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "pillow", marker = "extra == 'vision'", specifier = ">=10.0.1,<=15.0" },
|
||||
{ name = "pillow", marker = "extra == 'torch-vision'", specifier = ">=10.0.1,<=15.0" },
|
||||
{ name = "pillow", marker = "extra == 'all'", specifier = ">=10.0.1,<=15.0" },
|
||||
{ name = "pillow", marker = "extra == 'docs'", specifier = ">=10.0.1,<=15.0" },
|
||||
{ name = "pillow", marker = "extra == 'agents'", specifier = ">=10.0.1,<=15.0" },
|
||||
{ name = "pillow", marker = "extra == 'dev-dependencies'", specifier = ">=10.0.1,<=15.0" },
|
||||
{ name = "protobuf", marker = "extra == 'sentencepiece'" },
|
||||
{ name = "protobuf", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "protobuf", marker = "extra == 'all'" },
|
||||
{ name = "protobuf", marker = "extra == 'docs'" },
|
||||
{ name = "protobuf", marker = "extra == 'torchhub'" },
|
||||
{ name = "protobuf", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "psutil", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "psutil", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "pyctcdecode", marker = "extra == 'audio'", specifier = ">=0.4.0" },
|
||||
{ name = "pyctcdecode", marker = "extra == 'speech'", specifier = ">=0.4.0" },
|
||||
{ name = "pyctcdecode", marker = "extra == 'torch-speech'", specifier = ">=0.4.0" },
|
||||
{ name = "pyctcdecode", marker = "extra == 'tf-speech'", specifier = ">=0.4.0" },
|
||||
{ name = "pyctcdecode", marker = "extra == 'flax-speech'", specifier = ">=0.4.0" },
|
||||
{ name = "pyctcdecode", marker = "extra == 'all'", specifier = ">=0.4.0" },
|
||||
{ name = "pyctcdecode", marker = "extra == 'docs'", specifier = ">=0.4.0" },
|
||||
{ name = "pyctcdecode", marker = "extra == 'dev-dependencies'", specifier = ">=0.4.0" },
|
||||
{ name = "pydantic", marker = "extra == 'serving'" },
|
||||
{ name = "pydantic", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "pydantic", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "pytest-timeout", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "pytest-xdist", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "pytest", marker = "extra == 'deepspeed-testing'", specifier = ">=7.2.0,<8.0.0" },
|
||||
{ name = "pytest", marker = "extra == 'dev-dependencies'", specifier = ">=7.2.0,<8.0.0" },
|
||||
{ name = "pytest-timeout", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "pytest-timeout", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "pytest-xdist", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "pytest-xdist", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "pyyaml", specifier = ">=5.1" },
|
||||
{ name = "ray", extras = ["tune"], marker = "extra == 'ray'", specifier = ">=2.7.0" },
|
||||
{ name = "ray", extras = ["tune"], marker = "extra == 'integrations'", specifier = ">=2.7.0" },
|
||||
{ name = "ray", extras = ["tune"], marker = "extra == 'all'", specifier = ">=2.7.0" },
|
||||
{ name = "ray", extras = ["tune"], marker = "extra == 'docs'", specifier = ">=2.7.0" },
|
||||
{ name = "ray", extras = ["tune"], marker = "extra == 'dev-dependencies'", specifier = ">=2.7.0" },
|
||||
{ name = "regex", specifier = "!=2019.12.17" },
|
||||
{ name = "regex", marker = "extra == 'torchhub'", specifier = "!=2019.12.17" },
|
||||
{ name = "requests" },
|
||||
{ name = "requests", marker = "extra == 'torchhub'" },
|
||||
{ name = "rhoknp", marker = "extra == 'ja'", specifier = ">=1.1.0,<1.3.1" },
|
||||
{ name = "rhoknp", marker = "extra == 'dev-dependencies'", specifier = ">=1.1.0,<1.3.1" },
|
||||
{ name = "rjieba", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "rjieba", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "rouge-score", marker = "extra == 'deepspeed-testing'", specifier = "!=0.0.7,!=0.0.8,!=0.1,!=0.1.1" },
|
||||
{ name = "rouge-score", marker = "extra == 'dev-dependencies'", specifier = "!=0.0.7,!=0.0.8,!=0.1,!=0.1.1" },
|
||||
{ name = "ruff", marker = "extra == 'deepspeed-testing'", specifier = "==0.1.5" },
|
||||
{ name = "ruff", marker = "extra == 'quality'", specifier = "==0.1.5" },
|
||||
{ name = "ruff", marker = "extra == 'dev-dependencies'", specifier = "==0.1.5" },
|
||||
{ name = "sacrebleu", marker = "extra == 'deepspeed-testing'", specifier = ">=1.4.12,<2.0.0" },
|
||||
{ name = "sacrebleu", marker = "extra == 'dev-dependencies'", specifier = ">=1.4.12,<2.0.0" },
|
||||
{ name = "sacremoses", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "sacremoses", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "safetensors", specifier = ">=0.4.1" },
|
||||
{ name = "sagemaker", marker = "extra == 'sagemaker'", specifier = "==2.226.1" },
|
||||
{ name = "scikit-learn", marker = "extra == 'sklearn'" },
|
||||
{ name = "scikit-learn", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "sentencepiece", marker = "extra == 'sentencepiece'", specifier = ">=0.1.91,!=0.1.92" },
|
||||
{ name = "sentencepiece", marker = "extra == 'deepspeed-testing'", specifier = ">=0.1.91,!=0.1.92" },
|
||||
{ name = "sentencepiece", marker = "extra == 'all'", specifier = ">=0.1.91,!=0.1.92" },
|
||||
{ name = "sentencepiece", marker = "extra == 'docs'", specifier = ">=0.1.91,!=0.1.92" },
|
||||
{ name = "sentencepiece", marker = "extra == 'torchhub'", specifier = ">=0.1.91,!=0.1.92" },
|
||||
{ name = "sentencepiece", marker = "extra == 'agents'", specifier = ">=0.1.91,!=0.1.92" },
|
||||
{ name = "sentencepiece", marker = "extra == 'dev-dependencies'", specifier = ">=0.1.91,!=0.1.92" },
|
||||
{ name = "sigopt", marker = "extra == 'sigopt'" },
|
||||
{ name = "sigopt", marker = "extra == 'integrations'" },
|
||||
{ name = "sigopt", marker = "extra == 'all'" },
|
||||
{ name = "sigopt", marker = "extra == 'docs'" },
|
||||
{ name = "sigopt", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "starlette", marker = "extra == 'serving'" },
|
||||
{ name = "sudachidict-core", marker = "extra == 'ja'", specifier = ">=20220729" },
|
||||
{ name = "sudachidict-core", marker = "extra == 'dev-dependencies'", specifier = ">=20220729" },
|
||||
{ name = "sudachipy", marker = "extra == 'ja'", specifier = ">=0.6.6" },
|
||||
{ name = "sudachipy", marker = "extra == 'dev-dependencies'", specifier = ">=0.6.6" },
|
||||
{ name = "tensorboard", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "tensorboard", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "tensorflow-text", marker = "extra == 'dev-dependencies'", specifier = "<2.16" },
|
||||
{ name = "tensorflow", marker = "extra == 'tf'", specifier = ">=2.6,<2.16" },
|
||||
{ name = "tensorflow", marker = "extra == 'all'", specifier = ">=2.6,<2.16" },
|
||||
{ name = "tensorflow", marker = "extra == 'docs'", specifier = ">=2.6,<2.16" },
|
||||
{ name = "tensorflow", marker = "extra == 'dev-dependencies'", specifier = ">=2.6,<2.16" },
|
||||
{ name = "tensorflow-cpu", marker = "extra == 'tf-cpu'", specifier = ">=2.6,<2.16" },
|
||||
{ name = "tensorflow-text", marker = "extra == 'tf'", specifier = "<2.16" },
|
||||
{ name = "tensorflow-text", marker = "extra == 'tf-cpu'", specifier = "<2.16" },
|
||||
{ name = "tensorflow-text", marker = "extra == 'all'", specifier = "<2.16" },
|
||||
{ name = "tensorflow-text", marker = "extra == 'docs'", specifier = "<2.16" },
|
||||
{ name = "tensorflow-text", marker = "extra == 'dev-dependencies'", specifier = "<2.16" },
|
||||
{ name = "tf2onnx", marker = "extra == 'tf'" },
|
||||
{ name = "tf2onnx", marker = "extra == 'tf-cpu'" },
|
||||
{ name = "tf2onnx", marker = "extra == 'onnx'" },
|
||||
{ name = "tf2onnx", marker = "extra == 'all'" },
|
||||
{ name = "tf2onnx", marker = "extra == 'docs'" },
|
||||
{ name = "tf2onnx", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "timeout-decorator", marker = "extra == 'deepspeed-testing'" },
|
||||
{ name = "timeout-decorator", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "timm", marker = "extra == 'timm'" },
|
||||
{ name = "timm", marker = "extra == 'all'" },
|
||||
{ name = "timm", marker = "extra == 'docs'" },
|
||||
{ name = "timm", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "tokenizers", specifier = ">=0.14,<0.19" },
|
||||
{ name = "tokenizers", marker = "extra == 'tokenizers'", specifier = ">=0.14,<0.19" },
|
||||
{ name = "tokenizers", marker = "extra == 'all'", specifier = ">=0.14,<0.19" },
|
||||
{ name = "tokenizers", marker = "extra == 'docs'", specifier = ">=0.14,<0.19" },
|
||||
{ name = "tokenizers", marker = "extra == 'torchhub'", specifier = ">=0.14,<0.19" },
|
||||
{ name = "tokenizers", marker = "extra == 'dev-dependencies'", specifier = ">=0.14,<0.19" },
|
||||
{ name = "torch", marker = "extra == 'torch'" },
|
||||
{ name = "torch", marker = "extra == 'all'" },
|
||||
{ name = "torch", marker = "extra == 'docs'" },
|
||||
{ name = "torch", marker = "extra == 'torchhub'" },
|
||||
{ name = "torch", marker = "extra == 'agents'" },
|
||||
{ name = "torch", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "torchaudio", marker = "extra == 'speech'" },
|
||||
{ name = "torchaudio", marker = "extra == 'torch-speech'" },
|
||||
{ name = "torchaudio", marker = "extra == 'all'" },
|
||||
{ name = "torchaudio", marker = "extra == 'docs'" },
|
||||
{ name = "torchaudio", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "torchvision", marker = "extra == 'torch-vision'" },
|
||||
{ name = "torchvision", marker = "extra == 'all'" },
|
||||
{ name = "torchvision", marker = "extra == 'docs'" },
|
||||
{ name = "torchvision", marker = "extra == 'dev-dependencies'" },
|
||||
{ name = "tqdm", specifier = ">=4.27" },
|
||||
{ name = "tqdm", marker = "extra == 'torchhub'", specifier = ">=4.27" },
|
||||
{ name = "unidic", marker = "extra == 'ja'", specifier = ">=1.0.2" },
|
||||
{ name = "unidic", marker = "extra == 'dev-dependencies'", specifier = ">=1.0.2" },
|
||||
{ name = "unidic-lite", marker = "extra == 'ja'", specifier = ">=1.0.7" },
|
||||
{ name = "unidic-lite", marker = "extra == 'dev-dependencies'", specifier = ">=1.0.7" },
|
||||
{ name = "urllib3", marker = "extra == 'quality'", specifier = "<2.0.0" },
|
||||
{ name = "urllib3", marker = "extra == 'dev-dependencies'", specifier = "<2.0.0" },
|
||||
{ name = "uvicorn", marker = "extra == 'serving'" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
|
@ -4281,8 +4281,8 @@ dev = [
|
|||
requires-dist = [
|
||||
{ name = "alembic", specifier = ">=0.7.0" },
|
||||
{ name = "alembic-postgresql-enum" },
|
||||
{ name = "automat" },
|
||||
{ name = "argon2-cffi" },
|
||||
{ name = "automat" },
|
||||
{ name = "b2sdk" },
|
||||
{ name = "babel" },
|
||||
{ name = "bcrypt" },
|
||||
|
@ -4293,6 +4293,7 @@ requires-dist = [
|
|||
{ name = "click" },
|
||||
{ name = "cryptography" },
|
||||
{ name = "datadog", specifier = ">=0.19.0" },
|
||||
{ name = "ddtrace", marker = "extra == 'deploy'", specifier = "==2.8.5" },
|
||||
{ name = "disposable-email-domains" },
|
||||
{ name = "elasticsearch", specifier = ">=7.0.0,<7.11.0" },
|
||||
{ name = "elasticsearch-dsl", specifier = ">=7.0.0,<8.0.0" },
|
||||
|
@ -4301,6 +4302,7 @@ requires-dist = [
|
|||
{ name = "github-reserved-names", specifier = ">=1.0.0" },
|
||||
{ name = "google-cloud-bigquery" },
|
||||
{ name = "google-cloud-storage" },
|
||||
{ name = "gunicorn", marker = "extra == 'deploy'", specifier = "==22.0.0" },
|
||||
{ name = "hiredis" },
|
||||
{ name = "html5lib" },
|
||||
{ name = "humanize" },
|
||||
|
@ -4323,9 +4325,10 @@ requires-dist = [
|
|||
{ name = "psycopg", extras = ["c"] },
|
||||
{ name = "pycurl" },
|
||||
{ name = "pydantic" },
|
||||
{ name = "pyjwt", extras = ["crypto"], specifier = ">=2.8.0" },
|
||||
{ name = "pymacaroons" },
|
||||
{ name = "pyqrcode" },
|
||||
{ name = "pyramid", specifier = ">=2.0" },
|
||||
{ name = "pymacaroons" },
|
||||
{ name = "pyramid-jinja2", specifier = ">=2.5" },
|
||||
{ name = "pyramid-mailer", specifier = ">=0.14.1" },
|
||||
{ name = "pyramid-openapi3", specifier = ">=0.17.1" },
|
||||
|
@ -4335,11 +4338,10 @@ requires-dist = [
|
|||
{ name = "pyramid-tm", specifier = ">=0.12" },
|
||||
{ name = "python-slugify" },
|
||||
{ name = "pytz" },
|
||||
{ name = "pyjwt", extras = ["crypto"], specifier = ">=2.8.0" },
|
||||
{ name = "readme-renderer", extras = ["md"], specifier = ">=36.0" },
|
||||
{ name = "redis", specifier = ">=2.8.0,<6.0.0" },
|
||||
{ name = "requests" },
|
||||
{ name = "requests-aws4auth" },
|
||||
{ name = "redis", specifier = ">=2.8.0,<6.0.0" },
|
||||
{ name = "rfc3986" },
|
||||
{ name = "sentry-sdk" },
|
||||
{ name = "setuptools" },
|
||||
|
@ -4356,13 +4358,10 @@ requires-dist = [
|
|||
{ name = "wtforms", extras = ["email"], specifier = ">=2.0.0" },
|
||||
{ name = "zope-sqlalchemy" },
|
||||
{ name = "zxcvbn" },
|
||||
{ name = "gunicorn", marker = "extra == 'deploy'", specifier = "==22.0.0" },
|
||||
{ name = "ddtrace", marker = "extra == 'deploy'", specifier = "==2.8.5" },
|
||||
]
|
||||
|
||||
[package.metadata.requires-dev]
|
||||
dev = [
|
||||
{ name = "sphinx" },
|
||||
{ name = "asyncudp", specifier = ">=0.7" },
|
||||
{ name = "black", specifier = "==24.4.2" },
|
||||
{ name = "cairosvg" },
|
||||
|
@ -4390,20 +4389,19 @@ dev = [
|
|||
{ name = "pip-tools", specifier = ">=1.0" },
|
||||
{ name = "pretend" },
|
||||
{ name = "pyramid-debugtoolbar", specifier = ">=2.5" },
|
||||
{ name = "pytest", specifier = ">=3.0.0" },
|
||||
{ name = "pytest-icdiff" },
|
||||
{ name = "pytest-postgresql", specifier = ">=3.1.3,<7.0.0" },
|
||||
{ name = "pytest-randomly" },
|
||||
{ name = "pytest-socket" },
|
||||
{ name = "pytest", specifier = ">=3.0.0" },
|
||||
{ name = "pytz" },
|
||||
{ name = "pyupgrade" },
|
||||
{ name = "repository-service-tuf" },
|
||||
{ name = "responses", specifier = ">=0.5.1" },
|
||||
{ name = "sphinx" },
|
||||
{ name = "sphinx-autobuild" },
|
||||
{ name = "sphinxcontrib-httpdomain" },
|
||||
{ name = "sphinxcontrib-mermaid" },
|
||||
{ name = "types-wtforms" },
|
||||
{ name = "types-webob" },
|
||||
{ name = "types-babel" },
|
||||
{ name = "types-boto3" },
|
||||
{ name = "types-certifi" },
|
||||
|
@ -4417,6 +4415,8 @@ dev = [
|
|||
{ name = "types-requests", specifier = "==2.31.0.6" },
|
||||
{ name = "types-setuptools" },
|
||||
{ name = "types-stripe" },
|
||||
{ name = "types-webob" },
|
||||
{ name = "types-wtforms" },
|
||||
{ name = "types-zxcvbn" },
|
||||
{ name = "webtest" },
|
||||
]
|
||||
|
|
|
@ -12,10 +12,10 @@
|
|||
"The latest version is available at: https://gist.github.com/charliermarsh/07afd9f543dfea68408a4a42cede4be4.\n",
|
||||
"\"\"\"\n",
|
||||
"\n",
|
||||
"import httpx\n",
|
||||
"\n",
|
||||
"from pathlib import Path\n",
|
||||
"\n",
|
||||
"import httpx\n",
|
||||
"\n",
|
||||
"api_key = \"\"\n",
|
||||
"responses = {}"
|
||||
]
|
||||
|
@ -32,9 +32,9 @@
|
|||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"for i in range(100): # 100 pages with 100 per page -> 10k\n",
|
||||
"for i in range(100): # 100 pages with 100 per page -> 10k\n",
|
||||
" print(i)\n",
|
||||
" if not i in responses:\n",
|
||||
" if i not in responses:\n",
|
||||
" # https://libraries.io/api#project-search\n",
|
||||
" sort = \"dependents_count\"\n",
|
||||
" url = f\"https://libraries.io/api/search?platforms=Pypi&per_page=100&page={i+1}&sort{sort}&api_key={api_key}\"\n",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue