From 3d1f25f6941da6cf715ebf1cb4b507cdea843cc1 Mon Sep 17 00:00:00 2001 From: Eric Mark Martin Date: Tue, 5 Nov 2024 22:18:43 -0500 Subject: [PATCH] Implement PEP 440-compliant local version semantics (#8797) ## Summary Implement a full working version of local version semantics. The (AFAIA) major move towards this was implemented in #2430. This added support such that the version specifier `torch==2.1.0+cpu` would install `torch@2.1.0+cpu` and consider `torch@2.1.0+cpu` a valid way to satisfy the requirement `torch==2.1.0` in further dependency resolution. In this feature, we more fully support local version semantics. Namely, we now allow `torch==2.1.0` to install `torch@2.1.0+cpu` regardless of whether `torch@2.1.0` (no local tag) actually exists. We do this by adding an internal-only `Max` value to local versions that compare greater to all other local versions. Then we can translate `torch==2.1.0` into bounds: greater than 2.1.0 with no local tag and less than 2.1.0 with the `Max` local tag. ## Test Plan Depends on https://github.com/astral-sh/packse/pull/227. --- crates/uv-pep440/src/lib.rs | 5 +- crates/uv-pep440/src/version.rs | 134 ++- crates/uv-pep440/src/version/tests.rs | 66 +- crates/uv-pep440/src/version_ranges.rs | 25 +- crates/uv-pep440/src/version_specifier.rs | 7 +- .../uv-pep440/src/version_specifier/tests.rs | 15 +- crates/uv-python/src/discovery.rs | 4 +- crates/uv-resolver/src/error.rs | 193 ++++- crates/uv-resolver/src/resolver/mod.rs | 4 +- crates/uv/tests/it/lock_scenarios.rs | 8 +- crates/uv/tests/it/pip_compile.rs | 97 ++- crates/uv/tests/it/pip_install_scenarios.rs | 116 ++- ...it__ecosystem__transformers-lock-file.snap | 781 +++--------------- ...cosystem__transformers-uv-lock-output.snap | 4 +- scripts/scenarios/generate.py | 12 - 15 files changed, 631 insertions(+), 840 deletions(-) diff --git a/crates/uv-pep440/src/lib.rs b/crates/uv-pep440/src/lib.rs index 982d6ede93c1..6fe6c531952d 100644 --- a/crates/uv-pep440/src/lib.rs +++ b/crates/uv-pep440/src/lib.rs @@ -27,8 +27,9 @@ pub use version_ranges::{release_specifier_to_range, release_specifiers_to_ranges}; pub use { version::{ - LocalSegment, Operator, OperatorParseError, Prerelease, PrereleaseKind, Version, - VersionParseError, VersionPattern, VersionPatternParseError, MIN_VERSION, + LocalSegment, LocalVersion, LocalVersionSlice, Operator, OperatorParseError, Prerelease, + PrereleaseKind, Version, VersionParseError, VersionPattern, VersionPatternParseError, + MIN_VERSION, }, version_specifier::{ VersionSpecifier, VersionSpecifierBuildError, VersionSpecifiers, diff --git a/crates/uv-pep440/src/version.rs b/crates/uv-pep440/src/version.rs index ae7fbebcaa88..0e36d2620262 100644 --- a/crates/uv-pep440/src/version.rs +++ b/crates/uv-pep440/src/version.rs @@ -388,10 +388,10 @@ impl Version { /// Returns the local segments in this version, if any exist. #[inline] - pub fn local(&self) -> &[LocalSegment] { + pub fn local(&self) -> LocalVersionSlice { match *self.inner { VersionInner::Small { ref small } => small.local(), - VersionInner::Full { ref full } => &full.local, + VersionInner::Full { ref full } => full.local.as_slice(), } } @@ -530,15 +530,28 @@ impl Version { /// Set the local segments and return the updated version. #[inline] #[must_use] - pub fn with_local(mut self, value: Vec) -> Self { + pub fn with_local_segments(mut self, value: Vec) -> Self { if value.is_empty() { self.without_local() } else { - self.make_full().local = value; + self.make_full().local = LocalVersion::Segments(value); self } } + /// Set the local version and return the updated version. + #[inline] + #[must_use] + pub fn with_local(mut self, value: LocalVersion) -> Self { + match value { + LocalVersion::Segments(segments) => self.with_local_segments(segments), + LocalVersion::Max => { + self.make_full().local = value; + self + } + } + } + /// For PEP 440 specifier matching: "Except where specifically noted below, /// local version identifiers MUST NOT be permitted in version specifiers, /// and local version labels MUST be ignored entirely when checking if @@ -615,7 +628,7 @@ impl Version { pre: small.pre(), post: small.post(), dev: small.dev(), - local: vec![], + local: LocalVersion::Segments(vec![]), }; *self = Self { inner: Arc::new(VersionInner::Full { full }), @@ -712,14 +725,12 @@ impl std::fmt::Display for Version { let local = if self.local().is_empty() { String::new() } else { - format!( - "+{}", - self.local() - .iter() - .map(ToString::to_string) - .collect::>() - .join(".") - ) + match self.local() { + LocalVersionSlice::Segments(_) => { + format!("+{}", self.local()) + } + LocalVersionSlice::Max => String::new(), + } }; write!(f, "{epoch}{release}{pre}{post}{dev}{local}") } @@ -1195,10 +1206,10 @@ impl VersionSmall { #[inline] #[allow(clippy::unused_self)] - fn local(&self) -> &[LocalSegment] { + fn local(&self) -> LocalVersionSlice { // A "small" version is never used if the version has a non-zero number // of local segments. - &[] + LocalVersionSlice::Segments(&[]) } #[inline] @@ -1283,7 +1294,7 @@ struct VersionFull { /// /// Local versions allow multiple segments separated by periods, such as `deadbeef.1.2.3`, see /// [`LocalSegment`] for details on the semantics. - local: Vec, + local: LocalVersion, /// An internal-only segment that does not exist in PEP 440, used to /// represent the smallest possible version of a release, preceding any /// `dev`, `pre`, `post` or releases. @@ -1414,6 +1425,93 @@ impl std::fmt::Display for Prerelease { } } +/// Either a sequence of local segments or [`LocalVersion::Sentinel`], an internal-only value that +/// compares greater than all other local versions. +#[derive(Eq, PartialEq, Debug, Clone, Hash)] +#[cfg_attr( + feature = "rkyv", + derive(rkyv::Archive, rkyv::Deserialize, rkyv::Serialize) +)] +#[cfg_attr(feature = "rkyv", rkyv(derive(Debug, Eq, PartialEq, PartialOrd, Ord)))] +pub enum LocalVersion { + /// A sequence of local segments. + Segments(Vec), + /// An internal-only value that compares greater to all other local versions. + Max, +} + +/// Like [`LocalVersion`], but using a slice +#[derive(Eq, PartialEq, Debug, Clone, Hash)] +pub enum LocalVersionSlice<'a> { + /// Like [`LocalVersion::Segments`] + Segments(&'a [LocalSegment]), + /// Like [`LocalVersion::Sentinel`] + Max, +} + +impl LocalVersion { + /// Convert the local version segments into a slice. + pub fn as_slice(&self) -> LocalVersionSlice<'_> { + match self { + LocalVersion::Segments(segments) => LocalVersionSlice::Segments(segments), + LocalVersion::Max => LocalVersionSlice::Max, + } + } + + /// Clear the local version segments, if they exist. + pub fn clear(&mut self) { + match self { + Self::Segments(segments) => segments.clear(), + Self::Max => *self = Self::Segments(Vec::new()), + } + } +} + +/// Output the local version identifier string. +/// +/// [`LocalVersionSlice::Max`] maps to `"[max]"` which is otherwise an illegal local +/// version because `[` and `]` are not allowed. +impl std::fmt::Display for LocalVersionSlice<'_> { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + LocalVersionSlice::Segments(segments) => { + for (i, segment) in segments.iter().enumerate() { + if i > 0 { + write!(f, ".")?; + } + write!(f, "{segment}")?; + } + Ok(()) + } + LocalVersionSlice::Max => write!(f, "[max]"), + } + } +} + +impl PartialOrd for LocalVersionSlice<'_> { + fn partial_cmp(&self, other: &Self) -> Option { + Some(self.cmp(other)) + } +} + +impl Ord for LocalVersionSlice<'_> { + fn cmp(&self, other: &Self) -> Ordering { + match (self, other) { + (LocalVersionSlice::Segments(lv1), LocalVersionSlice::Segments(lv2)) => lv1.cmp(lv2), + (LocalVersionSlice::Segments(_), LocalVersionSlice::Max) => Ordering::Less, + (LocalVersionSlice::Max, LocalVersionSlice::Segments(_)) => Ordering::Greater, + (LocalVersionSlice::Max, LocalVersionSlice::Max) => Ordering::Equal, + } + } +} + +impl LocalVersionSlice<'_> { + /// Whether the local version is absent + pub fn is_empty(&self) -> bool { + matches!(self, Self::Segments(&[])) + } +} + /// A part of the [local version identifier]() /// /// Local versions are a mess: @@ -1855,7 +1953,7 @@ impl<'a> Parser<'a> { .with_pre(self.pre) .with_post(self.post) .with_dev(self.dev) - .with_local(self.local); + .with_local(LocalVersion::Segments(self.local)); VersionPattern { version, wildcard: self.wildcard, @@ -2326,7 +2424,7 @@ pub(crate) fn compare_release(this: &[u64], other: &[u64]) -> Ordering { /// implementation /// /// [pep440-suffix-ordering]: https://peps.python.org/pep-0440/#summary-of-permitted-suffixes-and-relative-ordering -fn sortable_tuple(version: &Version) -> (u64, u64, Option, u64, &[LocalSegment]) { +fn sortable_tuple(version: &Version) -> (u64, u64, Option, u64, LocalVersionSlice) { // If the version is a "max" version, use a post version larger than any possible post version. let post = if version.max().is_some() { Some(u64::MAX) diff --git a/crates/uv-pep440/src/version/tests.rs b/crates/uv-pep440/src/version/tests.rs index 54aa2e51f20f..2d10a2e668a6 100644 --- a/crates/uv-pep440/src/version/tests.rs +++ b/crates/uv-pep440/src/version/tests.rs @@ -125,46 +125,50 @@ fn test_packaging_versions() { ("1.1.dev1", Version::new([1, 1]).with_dev(Some(1))), ( "1.2+123abc", - Version::new([1, 2]).with_local(vec![LocalSegment::String("123abc".to_string())]), + Version::new([1, 2]) + .with_local_segments(vec![LocalSegment::String("123abc".to_string())]), ), ( "1.2+123abc456", - Version::new([1, 2]).with_local(vec![LocalSegment::String("123abc456".to_string())]), + Version::new([1, 2]) + .with_local_segments(vec![LocalSegment::String("123abc456".to_string())]), ), ( "1.2+abc", - Version::new([1, 2]).with_local(vec![LocalSegment::String("abc".to_string())]), + Version::new([1, 2]).with_local_segments(vec![LocalSegment::String("abc".to_string())]), ), ( "1.2+abc123", - Version::new([1, 2]).with_local(vec![LocalSegment::String("abc123".to_string())]), + Version::new([1, 2]) + .with_local_segments(vec![LocalSegment::String("abc123".to_string())]), ), ( "1.2+abc123def", - Version::new([1, 2]).with_local(vec![LocalSegment::String("abc123def".to_string())]), + Version::new([1, 2]) + .with_local_segments(vec![LocalSegment::String("abc123def".to_string())]), ), ( "1.2+1234.abc", - Version::new([1, 2]).with_local(vec![ + Version::new([1, 2]).with_local_segments(vec![ LocalSegment::Number(1234), LocalSegment::String("abc".to_string()), ]), ), ( "1.2+123456", - Version::new([1, 2]).with_local(vec![LocalSegment::Number(123_456)]), + Version::new([1, 2]).with_local_segments(vec![LocalSegment::Number(123_456)]), ), ( "1.2.r32+123456", Version::new([1, 2]) .with_post(Some(32)) - .with_local(vec![LocalSegment::Number(123_456)]), + .with_local_segments(vec![LocalSegment::Number(123_456)]), ), ( "1.2.rev33+123456", Version::new([1, 2]) .with_post(Some(33)) - .with_local(vec![LocalSegment::Number(123_456)]), + .with_local_segments(vec![LocalSegment::Number(123_456)]), ), // Explicit epoch of 1 ( @@ -316,35 +320,35 @@ fn test_packaging_versions() { "1!1.2+123abc", Version::new([1, 2]) .with_epoch(1) - .with_local(vec![LocalSegment::String("123abc".to_string())]), + .with_local_segments(vec![LocalSegment::String("123abc".to_string())]), ), ( "1!1.2+123abc456", Version::new([1, 2]) .with_epoch(1) - .with_local(vec![LocalSegment::String("123abc456".to_string())]), + .with_local_segments(vec![LocalSegment::String("123abc456".to_string())]), ), ( "1!1.2+abc", Version::new([1, 2]) .with_epoch(1) - .with_local(vec![LocalSegment::String("abc".to_string())]), + .with_local_segments(vec![LocalSegment::String("abc".to_string())]), ), ( "1!1.2+abc123", Version::new([1, 2]) .with_epoch(1) - .with_local(vec![LocalSegment::String("abc123".to_string())]), + .with_local_segments(vec![LocalSegment::String("abc123".to_string())]), ), ( "1!1.2+abc123def", Version::new([1, 2]) .with_epoch(1) - .with_local(vec![LocalSegment::String("abc123def".to_string())]), + .with_local_segments(vec![LocalSegment::String("abc123def".to_string())]), ), ( "1!1.2+1234.abc", - Version::new([1, 2]).with_epoch(1).with_local(vec![ + Version::new([1, 2]).with_epoch(1).with_local_segments(vec![ LocalSegment::Number(1234), LocalSegment::String("abc".to_string()), ]), @@ -353,28 +357,28 @@ fn test_packaging_versions() { "1!1.2+123456", Version::new([1, 2]) .with_epoch(1) - .with_local(vec![LocalSegment::Number(123_456)]), + .with_local_segments(vec![LocalSegment::Number(123_456)]), ), ( "1!1.2.r32+123456", Version::new([1, 2]) .with_epoch(1) .with_post(Some(32)) - .with_local(vec![LocalSegment::Number(123_456)]), + .with_local_segments(vec![LocalSegment::Number(123_456)]), ), ( "1!1.2.rev33+123456", Version::new([1, 2]) .with_epoch(1) .with_post(Some(33)) - .with_local(vec![LocalSegment::Number(123_456)]), + .with_local_segments(vec![LocalSegment::Number(123_456)]), ), ( "98765!1.2.rev33+123456", Version::new([1, 2]) .with_epoch(98765) .with_post(Some(33)) - .with_local(vec![LocalSegment::Number(123_456)]), + .with_local_segments(vec![LocalSegment::Number(123_456)]), ), ]; for (string, structured) in versions { @@ -879,50 +883,50 @@ fn parse_version_valid() { // local tests assert_eq!( p("5+2"), - Version::new([5]).with_local(vec![LocalSegment::Number(2)]) + Version::new([5]).with_local_segments(vec![LocalSegment::Number(2)]) ); assert_eq!( p("5+a"), - Version::new([5]).with_local(vec![LocalSegment::String("a".to_string())]) + Version::new([5]).with_local_segments(vec![LocalSegment::String("a".to_string())]) ); assert_eq!( p("5+abc.123"), - Version::new([5]).with_local(vec![ + Version::new([5]).with_local_segments(vec![ LocalSegment::String("abc".to_string()), LocalSegment::Number(123), ]) ); assert_eq!( p("5+123.abc"), - Version::new([5]).with_local(vec![ + Version::new([5]).with_local_segments(vec![ LocalSegment::Number(123), LocalSegment::String("abc".to_string()), ]) ); assert_eq!( p("5+18446744073709551615.abc"), - Version::new([5]).with_local(vec![ + Version::new([5]).with_local_segments(vec![ LocalSegment::Number(18_446_744_073_709_551_615), LocalSegment::String("abc".to_string()), ]) ); assert_eq!( p("5+18446744073709551616.abc"), - Version::new([5]).with_local(vec![ + Version::new([5]).with_local_segments(vec![ LocalSegment::String("18446744073709551616".to_string()), LocalSegment::String("abc".to_string()), ]) ); assert_eq!( p("5+ABC.123"), - Version::new([5]).with_local(vec![ + Version::new([5]).with_local_segments(vec![ LocalSegment::String("abc".to_string()), LocalSegment::Number(123), ]) ); assert_eq!( p("5+ABC-123.4_5_xyz-MNO"), - Version::new([5]).with_local(vec![ + Version::new([5]).with_local_segments(vec![ LocalSegment::String("abc".to_string()), LocalSegment::Number(123), LocalSegment::Number(4), @@ -933,21 +937,21 @@ fn parse_version_valid() { ); assert_eq!( p("5.6.7+abc-00123"), - Version::new([5, 6, 7]).with_local(vec![ + Version::new([5, 6, 7]).with_local_segments(vec![ LocalSegment::String("abc".to_string()), LocalSegment::Number(123), ]) ); assert_eq!( p("5.6.7+abc-foo00123"), - Version::new([5, 6, 7]).with_local(vec![ + Version::new([5, 6, 7]).with_local_segments(vec![ LocalSegment::String("abc".to_string()), LocalSegment::String("foo00123".to_string()), ]) ); assert_eq!( p("5.6.7+abc-00123a"), - Version::new([5, 6, 7]).with_local(vec![ + Version::new([5, 6, 7]).with_local_segments(vec![ LocalSegment::String("abc".to_string()), LocalSegment::String("00123a".to_string()), ]) @@ -992,7 +996,7 @@ fn parse_version_valid() { assert_eq!(p(" 5 "), Version::new([5])); assert_eq!( p(" 5.6.7+abc.123.xyz "), - Version::new([5, 6, 7]).with_local(vec![ + Version::new([5, 6, 7]).with_local_segments(vec![ LocalSegment::String("abc".to_string()), LocalSegment::Number(123), LocalSegment::String("xyz".to_string()) diff --git a/crates/uv-pep440/src/version_ranges.rs b/crates/uv-pep440/src/version_ranges.rs index 41c45fe291e1..a05d7be039a2 100644 --- a/crates/uv-pep440/src/version_ranges.rs +++ b/crates/uv-pep440/src/version_ranges.rs @@ -2,7 +2,10 @@ use version_ranges::Ranges; -use crate::{Operator, Prerelease, Version, VersionSpecifier, VersionSpecifiers}; +use crate::{ + LocalVersion, LocalVersionSlice, Operator, Prerelease, Version, VersionSpecifier, + VersionSpecifiers, +}; impl From for Ranges { /// Convert [`VersionSpecifiers`] to a PubGrub-compatible version range, using PEP 440 @@ -22,9 +25,23 @@ impl From for Ranges { fn from(specifier: VersionSpecifier) -> Self { let VersionSpecifier { operator, version } = specifier; match operator { - Operator::Equal => Ranges::singleton(version), + Operator::Equal => match version.local() { + LocalVersionSlice::Segments(&[]) => { + let low = version; + let high = low.clone().with_local(LocalVersion::Max); + Ranges::between(low, high) + } + LocalVersionSlice::Segments(_) => Ranges::singleton(version), + LocalVersionSlice::Max => unreachable!( + "found `LocalVersionSlice::Sentinel`, which should be an internal-only value" + ), + }, Operator::ExactEqual => Ranges::singleton(version), - Operator::NotEqual => Ranges::singleton(version).complement(), + Operator::NotEqual => Ranges::from(VersionSpecifier { + operator: Operator::Equal, + version, + }) + .complement(), Operator::TildeEqual => { let [rest @ .., last, _] = version.release() else { unreachable!("~= must have at least two segments"); @@ -45,7 +62,7 @@ impl From for Ranges { Ranges::strictly_lower_than(version.with_min(Some(0))) } } - Operator::LessThanEqual => Ranges::lower_than(version), + Operator::LessThanEqual => Ranges::lower_than(version.with_local(LocalVersion::Max)), Operator::GreaterThan => { // Per PEP 440: "The exclusive ordered comparison >V MUST NOT allow a post-release of // the given version unless V itself is a post release." diff --git a/crates/uv-pep440/src/version_specifier.rs b/crates/uv-pep440/src/version_specifier.rs index 4a62541e2ef4..2a9440254cdf 100644 --- a/crates/uv-pep440/src/version_specifier.rs +++ b/crates/uv-pep440/src/version_specifier.rs @@ -652,12 +652,7 @@ impl std::fmt::Display for VersionSpecifierBuildError { operator: ref op, ref version, } => { - let local = version - .local() - .iter() - .map(ToString::to_string) - .collect::>() - .join("."); + let local = version.local(); write!( f, "Operator {op} is incompatible with versions \ diff --git a/crates/uv-pep440/src/version_specifier/tests.rs b/crates/uv-pep440/src/version_specifier/tests.rs index f853aab285c4..ea0bdecc1c49 100644 --- a/crates/uv-pep440/src/version_specifier/tests.rs +++ b/crates/uv-pep440/src/version_specifier/tests.rs @@ -579,7 +579,8 @@ fn test_invalid_specifier() { ParseErrorKind::InvalidSpecifier( BuildErrorKind::OperatorLocalCombo { operator: Operator::TildeEqual, - version: Version::new([1, 0]).with_local(vec![LocalSegment::Number(5)]), + version: Version::new([1, 0]) + .with_local_segments(vec![LocalSegment::Number(5)]), } .into(), ) @@ -591,7 +592,7 @@ fn test_invalid_specifier() { BuildErrorKind::OperatorLocalCombo { operator: Operator::GreaterThanEqual, version: Version::new([1, 0]) - .with_local(vec![LocalSegment::String("deadbeef".to_string())]), + .with_local_segments(vec![LocalSegment::String("deadbeef".to_string())]), } .into(), ) @@ -603,7 +604,7 @@ fn test_invalid_specifier() { BuildErrorKind::OperatorLocalCombo { operator: Operator::LessThanEqual, version: Version::new([1, 0]) - .with_local(vec![LocalSegment::String("abc123".to_string())]), + .with_local_segments(vec![LocalSegment::String("abc123".to_string())]), } .into(), ) @@ -615,7 +616,7 @@ fn test_invalid_specifier() { BuildErrorKind::OperatorLocalCombo { operator: Operator::GreaterThan, version: Version::new([1, 0]) - .with_local(vec![LocalSegment::String("watwat".to_string())]), + .with_local_segments(vec![LocalSegment::String("watwat".to_string())]), } .into(), ) @@ -626,8 +627,10 @@ fn test_invalid_specifier() { ParseErrorKind::InvalidSpecifier( BuildErrorKind::OperatorLocalCombo { operator: Operator::LessThan, - version: Version::new([1, 0]) - .with_local(vec![LocalSegment::Number(1), LocalSegment::Number(0)]), + version: Version::new([1, 0]).with_local_segments(vec![ + LocalSegment::Number(1), + LocalSegment::Number(0), + ]), } .into(), ) diff --git a/crates/uv-python/src/discovery.rs b/crates/uv-python/src/discovery.rs index 3409fe51aacb..73b35be3a6d8 100644 --- a/crates/uv-python/src/discovery.rs +++ b/crates/uv-python/src/discovery.rs @@ -2113,7 +2113,9 @@ impl FromStr for VersionRequest { return Err(Error::InvalidVersionRequest(s.to_string())); } - let [uv_pep440::LocalSegment::String(local)] = version.local() else { + let uv_pep440::LocalVersionSlice::Segments([uv_pep440::LocalSegment::String(local)]) = + version.local() + else { return Err(Error::InvalidVersionRequest(s.to_string())); }; diff --git a/crates/uv-resolver/src/error.rs b/crates/uv-resolver/src/error.rs index 926af4fcf46d..6c60f69a693f 100644 --- a/crates/uv-resolver/src/error.rs +++ b/crates/uv-resolver/src/error.rs @@ -1,10 +1,20 @@ -use std::collections::{BTreeMap, BTreeSet}; +use std::collections::{BTreeMap, BTreeSet, Bound}; use std::fmt::Formatter; use std::sync::Arc; use indexmap::IndexSet; -use pubgrub::{DefaultStringReporter, DerivationTree, Derived, External, Range, Reporter}; +use pubgrub::{ + DefaultStringReporter, DerivationTree, Derived, External, Range, Ranges, Reporter, Term, +}; use rustc_hash::FxHashMap; +use tracing::trace; + +use uv_distribution_types::{ + BuiltDist, IndexCapabilities, IndexLocations, IndexUrl, InstalledDist, SourceDist, +}; +use uv_normalize::PackageName; +use uv_pep440::{LocalVersionSlice, Version}; +use uv_static::EnvVars; use crate::candidate_selector::CandidateSelector; use crate::dependency_provider::UvDependencyProvider; @@ -16,13 +26,6 @@ use crate::resolver::{ IncompletePackage, ResolverEnvironment, UnavailablePackage, UnavailableReason, }; use crate::Options; -use tracing::trace; -use uv_distribution_types::{ - BuiltDist, IndexCapabilities, IndexLocations, IndexUrl, InstalledDist, SourceDist, -}; -use uv_normalize::PackageName; -use uv_pep440::Version; -use uv_static::EnvVars; #[derive(Debug, thiserror::Error)] pub enum ResolveError { @@ -221,6 +224,178 @@ impl NoSolutionError { .expect("derivation tree should contain at least one external term") } + /// Simplifies the version ranges on any incompatibilities to remove the `[max]` sentinel. + /// + /// The `[max]` sentinel is used to represent the maximum local version of a package, to + /// implement PEP 440 semantics for local version equality. For example, `1.0.0+foo` needs to + /// satisfy `==1.0.0`. + pub(crate) fn collapse_local_version_segments(derivation_tree: ErrorTree) -> ErrorTree { + /// Remove local versions sentinels (`+[max]`) from the interval. + fn strip_sentinel( + mut lower: Bound, + mut upper: Bound, + ) -> (Bound, Bound) { + match (&lower, &upper) { + (Bound::Unbounded, Bound::Unbounded) => {} + (Bound::Unbounded, Bound::Included(v)) => { + // `<=1.0.0+[max]` is equivalent to `<=1.0.0` + if v.local() == LocalVersionSlice::Max { + upper = Bound::Included(v.clone().without_local()); + } + } + (Bound::Unbounded, Bound::Excluded(v)) => { + // `<1.0.0+[max]` is equivalent to `<1.0.0` + if v.local() == LocalVersionSlice::Max { + upper = Bound::Excluded(v.clone().without_local()); + } + } + (Bound::Included(v), Bound::Unbounded) => { + // `>=1.0.0+[max]` is equivalent to `>1.0.0` + if v.local() == LocalVersionSlice::Max { + lower = Bound::Excluded(v.clone().without_local()); + } + } + (Bound::Included(v), Bound::Included(b)) => { + // `>=1.0.0+[max]` is equivalent to `>1.0.0` + if v.local() == LocalVersionSlice::Max { + lower = Bound::Excluded(v.clone().without_local()); + } + // `<=1.0.0+[max]` is equivalent to `<=1.0.0` + if b.local() == LocalVersionSlice::Max { + upper = Bound::Included(b.clone().without_local()); + } + } + (Bound::Included(v), Bound::Excluded(b)) => { + // `>=1.0.0+[max]` is equivalent to `>1.0.0` + if v.local() == LocalVersionSlice::Max { + lower = Bound::Excluded(v.clone().without_local()); + } + // `<1.0.0+[max]` is equivalent to `<1.0.0` + if b.local() == LocalVersionSlice::Max { + upper = Bound::Included(b.clone().without_local()); + } + } + (Bound::Excluded(v), Bound::Unbounded) => { + // `>1.0.0+[max]` is equivalent to `>1.0.0` + if v.local() == LocalVersionSlice::Max { + lower = Bound::Excluded(v.clone().without_local()); + } + } + (Bound::Excluded(v), Bound::Included(b)) => { + // `>1.0.0+[max]` is equivalent to `>1.0.0` + if v.local() == LocalVersionSlice::Max { + lower = Bound::Excluded(v.clone().without_local()); + } + // `<=1.0.0+[max]` is equivalent to `<=1.0.0` + if b.local() == LocalVersionSlice::Max { + upper = Bound::Included(b.clone().without_local()); + } + } + (Bound::Excluded(v), Bound::Excluded(b)) => { + // `>1.0.0+[max]` is equivalent to `>1.0.0` + if v.local() == LocalVersionSlice::Max { + lower = Bound::Excluded(v.clone().without_local()); + } + // `<1.0.0+[max]` is equivalent to `<1.0.0` + if b.local() == LocalVersionSlice::Max { + upper = Bound::Excluded(b.clone().without_local()); + } + } + } + (lower, upper) + } + + /// Remove local versions sentinels (`+[max]`) from the version ranges. + #[allow(clippy::needless_pass_by_value)] + fn strip_sentinels(versions: Ranges) -> Ranges { + let mut range = Ranges::empty(); + for (lower, upper) in versions.iter() { + let (lower, upper) = strip_sentinel(lower.clone(), upper.clone()); + range = range.union(&Range::from_range_bounds((lower, upper))); + } + range + } + + /// Returns `true` if the range appears to be, e.g., `>1.0.0, <1.0.0+[max]`. + fn is_sentinel(versions: &Ranges) -> bool { + versions.iter().all(|(lower, upper)| { + let (Bound::Excluded(lower), Bound::Excluded(upper)) = (lower, upper) else { + return false; + }; + if lower.local() == LocalVersionSlice::Max { + return false; + } + if upper.local() != LocalVersionSlice::Max { + return false; + } + *lower == upper.clone().without_local() + }) + } + + fn strip(derivation_tree: ErrorTree) -> Option { + match derivation_tree { + DerivationTree::External(External::NotRoot(_, _)) => Some(derivation_tree), + DerivationTree::External(External::NoVersions(package, versions)) => { + if is_sentinel(&versions) { + return None; + } + + let versions = strip_sentinels(versions); + Some(DerivationTree::External(External::NoVersions( + package, versions, + ))) + } + DerivationTree::External(External::FromDependencyOf( + package1, + versions1, + package2, + versions2, + )) => { + let versions1 = strip_sentinels(versions1); + let versions2 = strip_sentinels(versions2); + Some(DerivationTree::External(External::FromDependencyOf( + package1, versions1, package2, versions2, + ))) + } + DerivationTree::External(External::Custom(package, versions, reason)) => { + let versions = strip_sentinels(versions); + Some(DerivationTree::External(External::Custom( + package, versions, reason, + ))) + } + DerivationTree::Derived(mut derived) => { + let cause1 = strip((*derived.cause1).clone()); + let cause2 = strip((*derived.cause2).clone()); + match (cause1, cause2) { + (Some(cause1), Some(cause2)) => Some(DerivationTree::Derived(Derived { + cause1: Arc::new(cause1), + cause2: Arc::new(cause2), + terms: std::mem::take(&mut derived.terms) + .into_iter() + .map(|(pkg, term)| { + let term = match term { + Term::Positive(versions) => { + Term::Positive(strip_sentinels(versions)) + } + Term::Negative(versions) => { + Term::Negative(strip_sentinels(versions)) + } + }; + (pkg, term) + }) + .collect(), + shared_id: derived.shared_id, + })), + (Some(cause), None) | (None, Some(cause)) => Some(cause), + _ => None, + } + } + } + } + + strip(derivation_tree).expect("derivation tree should contain at least one term") + } + /// Initialize a [`NoSolutionHeader`] for this error. pub fn header(&self) -> NoSolutionHeader { NoSolutionHeader::new(self.env.clone()) diff --git a/crates/uv-resolver/src/resolver/mod.rs b/crates/uv-resolver/src/resolver/mod.rs index ba4fdafc78c1..46b788b138c6 100644 --- a/crates/uv-resolver/src/resolver/mod.rs +++ b/crates/uv-resolver/src/resolver/mod.rs @@ -1964,7 +1964,9 @@ impl ResolverState ResolveError { - err = NoSolutionError::collapse_proxies(err); + err = NoSolutionError::collapse_local_version_segments(NoSolutionError::collapse_proxies( + err, + )); let mut unavailable_packages = FxHashMap::default(); for package in err.packages() { diff --git a/crates/uv/tests/it/lock_scenarios.rs b/crates/uv/tests/it/lock_scenarios.rs index 782902336b70..c2edb01263cf 100644 --- a/crates/uv/tests/it/lock_scenarios.rs +++ b/crates/uv/tests/it/lock_scenarios.rs @@ -2780,7 +2780,7 @@ fn fork_non_local_fork_marker_direct() -> Result<()> { ----- stderr ----- × No solution found when resolving dependencies: - ╰─▶ Because package-b{sys_platform == 'darwin'}==1.0.0 depends on package-c>=2.0.0 and package-a{sys_platform == 'linux'}==1.0.0 depends on package-c<2.0.0, we can conclude that package-a{sys_platform == 'linux'}==1.0.0 and package-b{sys_platform == 'darwin'}==1.0.0 are incompatible. + ╰─▶ Because package-a{sys_platform == 'linux'}==1.0.0 depends on package-c<2.0.0 and package-b{sys_platform == 'darwin'}==1.0.0 depends on package-c>=2.0.0, we can conclude that package-a{sys_platform == 'linux'}==1.0.0 and package-b{sys_platform == 'darwin'}==1.0.0 are incompatible. And because your project depends on package-a{sys_platform == 'linux'}==1.0.0 and package-b{sys_platform == 'darwin'}==1.0.0, we can conclude that your project's requirements are unsatisfiable. "### ); @@ -2852,11 +2852,11 @@ fn fork_non_local_fork_marker_transitive() -> Result<()> { ----- stderr ----- × No solution found when resolving dependencies: - ╰─▶ Because package-b==1.0.0 depends on package-c{sys_platform == 'darwin'}>=2.0.0 and only package-c{sys_platform == 'darwin'}<=2.0.0 is available, we can conclude that package-b==1.0.0 depends on package-c{sys_platform == 'darwin'}==2.0.0. - And because only the following versions of package-c{sys_platform == 'linux'} are available: + ╰─▶ Because package-a==1.0.0 depends on package-c{sys_platform == 'linux'}<2.0.0 and only the following versions of package-c{sys_platform == 'linux'} are available: package-c{sys_platform == 'linux'}==1.0.0 package-c{sys_platform == 'linux'}>2.0.0 - and package-a==1.0.0 depends on package-c{sys_platform == 'linux'}<2.0.0, we can conclude that package-a==1.0.0 and package-b==1.0.0 are incompatible. + we can conclude that package-a==1.0.0 depends on package-c{sys_platform == 'linux'}==1.0.0. + And because only package-c{sys_platform == 'darwin'}<=2.0.0 is available and package-b==1.0.0 depends on package-c{sys_platform == 'darwin'}>=2.0.0, we can conclude that package-a==1.0.0 and package-b==1.0.0 are incompatible. And because your project depends on package-a==1.0.0 and package-b==1.0.0, we can conclude that your project's requirements are unsatisfiable. "### ); diff --git a/crates/uv/tests/it/pip_compile.rs b/crates/uv/tests/it/pip_compile.rs index 36e14a04f01b..9dc2dc474d07 100644 --- a/crates/uv/tests/it/pip_compile.rs +++ b/crates/uv/tests/it/pip_compile.rs @@ -7179,7 +7179,7 @@ fn universal_transitive_disjoint_locals() -> Result<()> { # -r requirements.in # torchvision # triton - torchvision==0.15.1 + torchvision==0.15.1+rocm5.4.2 # via -r requirements.in triton==2.0.0 ; platform_machine == 'x86_64' and platform_system == 'Linux' # via torch @@ -7452,30 +7452,33 @@ fn universal_disjoint_base_or_local_requirement() -> Result<()> { ----- stdout ----- # This file was autogenerated by uv via the following command: # uv pip compile --cache-dir [CACHE_DIR] requirements.in --universal - cmake==3.28.4 ; python_full_version >= '3.11' and python_full_version < '3.13' and platform_machine == 'x86_64' and platform_system == 'Linux' - # via triton + cmake==3.28.4 ; python_full_version < '3.11' or (python_full_version < '3.13' and platform_machine == 'x86_64' and platform_system == 'Linux') + # via + # pytorch-triton-rocm + # triton . # via -r requirements.in filelock==3.13.1 # via + # pytorch-triton-rocm # torch # triton jinja2==3.1.3 # via torch - lit==18.1.2 ; python_full_version >= '3.11' and python_full_version < '3.13' and platform_machine == 'x86_64' and platform_system == 'Linux' - # via triton + lit==18.1.2 ; python_full_version < '3.11' or (python_full_version < '3.13' and platform_machine == 'x86_64' and platform_system == 'Linux') + # via + # pytorch-triton-rocm + # triton markupsafe==2.1.5 # via jinja2 mpmath==1.3.0 # via sympy networkx==3.2.1 # via torch + pytorch-triton-rocm==2.0.2 ; python_full_version < '3.11' + # via torch sympy==1.12 # via torch - torch==2.0.0 ; python_full_version < '3.11' - # via - # -r requirements.in - # example torch==2.0.0+cpu ; python_full_version >= '3.13' # via # -r requirements.in @@ -7485,13 +7488,18 @@ fn universal_disjoint_base_or_local_requirement() -> Result<()> { # -r requirements.in # example # triton + torch==2.0.0+rocm5.4.2 ; python_full_version < '3.11' + # via + # -r requirements.in + # example + # pytorch-triton-rocm triton==2.0.0 ; python_full_version >= '3.11' and python_full_version < '3.13' and platform_machine == 'x86_64' and platform_system == 'Linux' # via torch typing-extensions==4.10.0 # via torch ----- stderr ----- - Resolved 14 packages in [TIME] + Resolved 15 packages in [TIME] "### ); @@ -7539,6 +7547,7 @@ fn universal_nested_overlapping_local_requirement() -> Result<()> { # via -r requirements.in filelock==3.13.1 # via + # pytorch-triton-rocm # torch # triton fsspec==2024.3.1 ; platform_machine != 'x86_64' @@ -7557,6 +7566,8 @@ fn universal_nested_overlapping_local_requirement() -> Result<()> { # via sympy networkx==3.2.1 # via torch + pytorch-triton-rocm==2.3.0 ; platform_machine != 'x86_64' + # via torch sympy==1.12 # via torch tbb==2021.11.0 ; platform_machine != 'x86_64' and platform_system == 'Windows' @@ -7566,7 +7577,7 @@ fn universal_nested_overlapping_local_requirement() -> Result<()> { # -r requirements.in # example # triton - torch==2.3.0 ; platform_machine != 'x86_64' + torch==2.3.0+rocm6.0 ; platform_machine != 'x86_64' # via -r requirements.in triton==2.0.0 ; platform_machine == 'x86_64' and platform_system == 'Linux' # via torch @@ -7574,7 +7585,7 @@ fn universal_nested_overlapping_local_requirement() -> Result<()> { # via torch ----- stderr ----- - Resolved 17 packages in [TIME] + Resolved 18 packages in [TIME] "### ); @@ -7613,6 +7624,7 @@ fn universal_nested_overlapping_local_requirement() -> Result<()> { # via -r requirements.in filelock==3.13.1 # via + # pytorch-triton-rocm # torch # triton fsspec==2024.3.1 ; platform_machine != 'x86_64' @@ -7631,6 +7643,8 @@ fn universal_nested_overlapping_local_requirement() -> Result<()> { # via sympy networkx==3.2.1 # via torch + pytorch-triton-rocm==2.3.0 ; platform_machine != 'x86_64' + # via torch sympy==1.12 # via torch tbb==2021.11.0 ; platform_machine != 'x86_64' and platform_system == 'Windows' @@ -7640,7 +7654,7 @@ fn universal_nested_overlapping_local_requirement() -> Result<()> { # -r requirements.in # example # triton - torch==2.3.0 ; platform_machine != 'x86_64' + torch==2.3.0+rocm6.0 ; platform_machine != 'x86_64' # via -r requirements.in triton==2.0.0 ; platform_machine == 'x86_64' and platform_system == 'Linux' # via torch @@ -7648,7 +7662,7 @@ fn universal_nested_overlapping_local_requirement() -> Result<()> { # via torch ----- stderr ----- - Resolved 17 packages in [TIME] + Resolved 18 packages in [TIME] "### ); @@ -7698,6 +7712,7 @@ fn universal_nested_disjoint_local_requirement() -> Result<()> { # via -r requirements.in filelock==3.13.1 # via + # pytorch-triton-rocm # torch # triton fsspec==2024.3.1 ; os_name != 'Linux' @@ -7716,36 +7731,7 @@ fn universal_nested_disjoint_local_requirement() -> Result<()> { # via sympy networkx==3.2.1 # via torch - nvidia-cublas-cu12==12.1.3.1 ; os_name != 'Linux' and platform_machine == 'x86_64' and platform_system == 'Linux' - # via - # nvidia-cudnn-cu12 - # nvidia-cusolver-cu12 - # torch - nvidia-cuda-cupti-cu12==12.1.105 ; os_name != 'Linux' and platform_machine == 'x86_64' and platform_system == 'Linux' - # via torch - nvidia-cuda-nvrtc-cu12==12.1.105 ; os_name != 'Linux' and platform_machine == 'x86_64' and platform_system == 'Linux' - # via torch - nvidia-cuda-runtime-cu12==12.1.105 ; os_name != 'Linux' and platform_machine == 'x86_64' and platform_system == 'Linux' - # via torch - nvidia-cudnn-cu12==8.9.2.26 ; os_name != 'Linux' and platform_machine == 'x86_64' and platform_system == 'Linux' - # via torch - nvidia-cufft-cu12==11.0.2.54 ; os_name != 'Linux' and platform_machine == 'x86_64' and platform_system == 'Linux' - # via torch - nvidia-curand-cu12==10.3.2.106 ; os_name != 'Linux' and platform_machine == 'x86_64' and platform_system == 'Linux' - # via torch - nvidia-cusolver-cu12==11.4.5.107 ; os_name != 'Linux' and platform_machine == 'x86_64' and platform_system == 'Linux' - # via torch - nvidia-cusparse-cu12==12.1.0.106 ; os_name != 'Linux' and platform_machine == 'x86_64' and platform_system == 'Linux' - # via - # nvidia-cusolver-cu12 - # torch - nvidia-nccl-cu12==2.20.5 ; os_name != 'Linux' and platform_machine == 'x86_64' and platform_system == 'Linux' - # via torch - nvidia-nvjitlink-cu12==12.4.99 ; os_name != 'Linux' and platform_machine == 'x86_64' and platform_system == 'Linux' - # via - # nvidia-cusolver-cu12 - # nvidia-cusparse-cu12 - nvidia-nvtx-cu12==12.1.105 ; os_name != 'Linux' and platform_machine == 'x86_64' and platform_system == 'Linux' + pytorch-triton-rocm==2.3.0 ; os_name != 'Linux' # via torch sympy==1.12 # via torch @@ -7760,7 +7746,7 @@ fn universal_nested_disjoint_local_requirement() -> Result<()> { # -r requirements.in # example # triton - torch==2.3.0 ; os_name != 'Linux' + torch==2.3.0+rocm6.0 ; os_name != 'Linux' # via -r requirements.in triton==2.0.0 ; os_name == 'Linux' and platform_machine == 'x86_64' and platform_system == 'Linux' # via torch @@ -7768,7 +7754,7 @@ fn universal_nested_disjoint_local_requirement() -> Result<()> { # via torch ----- stderr ----- - Resolved 30 packages in [TIME] + Resolved 19 packages in [TIME] "### ); @@ -8515,14 +8501,20 @@ fn universal_marker_propagation() -> Result<()> { # via requests charset-normalizer==3.3.2 # via requests + cmake==3.28.4 ; platform_machine == 'x86_64' + # via pytorch-triton-rocm filelock==3.13.1 - # via torch + # via + # pytorch-triton-rocm + # torch fsspec==2024.3.1 ; platform_machine != 'x86_64' # via torch idna==3.6 # via requests jinja2==3.1.3 # via torch + lit==18.1.2 ; platform_machine == 'x86_64' + # via pytorch-triton-rocm markupsafe==2.1.5 # via jinja2 mpmath==1.3.0 @@ -8533,15 +8525,20 @@ fn universal_marker_propagation() -> Result<()> { # via torchvision pillow==10.2.0 # via torchvision + pytorch-triton-rocm==2.0.2 ; platform_machine == 'x86_64' + # via torch + pytorch-triton-rocm==2.2.0 ; platform_machine != 'x86_64' + # via torch requests==2.31.0 # via torchvision sympy==1.12 # via torch - torch==2.0.0 ; platform_machine == 'x86_64' + torch==2.0.0+rocm5.4.2 ; platform_machine == 'x86_64' # via # -r requirements.in + # pytorch-triton-rocm # torchvision - torch==2.2.0 ; platform_machine != 'x86_64' + torch==2.2.0+rocm5.7 ; platform_machine != 'x86_64' # via # -r requirements.in # torchvision @@ -8556,7 +8553,7 @@ fn universal_marker_propagation() -> Result<()> { ----- stderr ----- warning: The requested Python version 3.8 is not available; 3.12.[X] will be used to build dependencies instead. - Resolved 19 packages in [TIME] + Resolved 23 packages in [TIME] "### ); diff --git a/crates/uv/tests/it/pip_install_scenarios.rs b/crates/uv/tests/it/pip_install_scenarios.rs index 57fc635943d7..b5fb8234d239 100644 --- a/crates/uv/tests/it/pip_install_scenarios.rs +++ b/crates/uv/tests/it/pip_install_scenarios.rs @@ -334,10 +334,10 @@ fn dependency_excludes_non_contiguous_range_of_compatible_versions() { ----- stderr ----- × No solution found when resolving dependencies: - ╰─▶ Because package-a==1.0.0 depends on package-b==1.0.0 and only the following versions of package-a are available: + ╰─▶ Because only the following versions of package-a are available: package-a==1.0.0 package-a>2.0.0,<=3.0.0 - we can conclude that package-a<2.0.0 depends on package-b==1.0.0. (1) + and package-a==1.0.0 depends on package-b==1.0.0, we can conclude that package-a<2.0.0 depends on package-b==1.0.0. (1) Because only the following versions of package-c are available: package-c==1.0.0 @@ -445,10 +445,10 @@ fn dependency_excludes_range_of_compatible_versions() { ----- stderr ----- × No solution found when resolving dependencies: - ╰─▶ Because package-a==1.0.0 depends on package-b==1.0.0 and only the following versions of package-a are available: + ╰─▶ Because only the following versions of package-a are available: package-a==1.0.0 package-a>2.0.0,<=3.0.0 - we can conclude that package-a<2.0.0 depends on package-b==1.0.0. (1) + and package-a==1.0.0 depends on package-b==1.0.0, we can conclude that package-a<2.0.0 depends on package-b==1.0.0. (1) Because only the following versions of package-c are available: package-c==1.0.0 @@ -529,17 +529,17 @@ fn excluded_only_compatible_version() { ----- stderr ----- × No solution found when resolving dependencies: - ╰─▶ Because package-a==1.0.0 depends on package-b==1.0.0 and only the following versions of package-a are available: + ╰─▶ Because only the following versions of package-a are available: package-a==1.0.0 package-a==2.0.0 package-a==3.0.0 - we can conclude that package-a<2.0.0 depends on package-b==1.0.0. + and package-a==1.0.0 depends on package-b==1.0.0, we can conclude that package-a<2.0.0 depends on package-b==1.0.0. And because package-a==3.0.0 depends on package-b==3.0.0, we can conclude that all of: package-a<2.0.0 package-a>2.0.0 depend on one of: - package-b<=1.0.0 - package-b>=3.0.0 + package-b==1.0.0 + package-b==3.0.0 And because you require one of: package-a<2.0.0 @@ -1276,8 +1276,10 @@ fn transitive_incompatible_with_transitive() { /// │ └── python3.8 /// ├── root /// │ └── requires a>=1.2.3 +/// │ ├── satisfied by a-1.2.3+bar /// │ └── satisfied by a-1.2.3+foo /// └── a +/// ├── a-1.2.3+bar /// └── a-1.2.3+foo /// ``` #[test] @@ -1354,8 +1356,10 @@ fn local_greater_than() { /// │ └── python3.8 /// ├── root /// │ └── requires a<=1.2.3 +/// │ ├── satisfied by a-1.2.3+bar /// │ └── satisfied by a-1.2.3+foo /// └── a +/// ├── a-1.2.3+bar /// └── a-1.2.3+foo /// ``` #[test] @@ -1369,19 +1373,22 @@ fn local_less_than_or_equal() { uv_snapshot!(filters, command(&context) .arg("local-less-than-or-equal-a<=1.2.3") , @r###" - success: false - exit_code: 1 + success: true + exit_code: 0 ----- stdout ----- ----- stderr ----- - × No solution found when resolving dependencies: - ╰─▶ Because only package-a==1.2.3+foo is available and you require package-a<=1.2.3, we can conclude that your requirements are unsatisfiable. + Resolved 1 package in [TIME] + Prepared 1 package in [TIME] + Installed 1 package in [TIME] + + package-a==1.2.3+foo "###); // The version '1.2.3+foo' satisfies the constraint '<=1.2.3'. - assert_not_installed( + assert_installed( &context.venv, "local_less_than_or_equal_a", + "1.2.3+foo", &context.temp_dir, ); } @@ -1500,14 +1507,14 @@ fn local_not_used_with_sdist() { Resolved 1 package in [TIME] Prepared 1 package in [TIME] Installed 1 package in [TIME] - + package-a==1.2.3 + + package-a==1.2.3+foo "###); // The version '1.2.3' with an sdist satisfies the constraint '==1.2.3'. assert_installed( &context.venv, "local_not_used_with_sdist_a", - "1.2.3", + "1.2.3+foo", &context.temp_dir, ); } @@ -1520,8 +1527,10 @@ fn local_not_used_with_sdist() { /// │ └── python3.8 /// ├── root /// │ └── requires a==1.2.3 +/// │ ├── satisfied by a-1.2.3+bar /// │ └── satisfied by a-1.2.3+foo /// └── a +/// ├── a-1.2.3+bar /// └── a-1.2.3+foo /// ``` #[test] @@ -1535,17 +1544,24 @@ fn local_simple() { uv_snapshot!(filters, command(&context) .arg("local-simple-a==1.2.3") , @r###" - success: false - exit_code: 1 + success: true + exit_code: 0 ----- stdout ----- ----- stderr ----- - × No solution found when resolving dependencies: - ╰─▶ Because there is no version of package-a==1.2.3 and you require package-a==1.2.3, we can conclude that your requirements are unsatisfiable. + Resolved 1 package in [TIME] + Prepared 1 package in [TIME] + Installed 1 package in [TIME] + + package-a==1.2.3+foo "###); // The version '1.2.3+foo' satisfies the constraint '==1.2.3'. - assert_not_installed(&context.venv, "local_simple_a", &context.temp_dir); + assert_installed( + &context.venv, + "local_simple_a", + "1.2.3+foo", + &context.temp_dir, + ); } /// A dependency depends on a conflicting local version of a direct dependency, but we can backtrack to a compatible version. @@ -1563,14 +1579,14 @@ fn local_simple() { /// ├── a /// │ ├── a-1.0.0 /// │ │ └── requires b==2.0.0 -/// │ │ ├── satisfied by b-2.0.0+foo -/// │ │ └── satisfied by b-2.0.0+bar +/// │ │ ├── satisfied by b-2.0.0+bar +/// │ │ └── satisfied by b-2.0.0+foo /// │ └── a-2.0.0 /// │ └── requires b==2.0.0+bar /// │ └── satisfied by b-2.0.0+bar /// └── b -/// ├── b-2.0.0+foo -/// └── b-2.0.0+bar +/// ├── b-2.0.0+bar +/// └── b-2.0.0+foo /// ``` #[test] fn local_transitive_backtrack() { @@ -1627,8 +1643,8 @@ fn local_transitive_backtrack() { /// │ └── requires b==2.0.0+bar /// │ └── satisfied by b-2.0.0+bar /// └── b -/// ├── b-2.0.0+foo -/// └── b-2.0.0+bar +/// ├── b-2.0.0+bar +/// └── b-2.0.0+foo /// ``` #[test] fn local_transitive_conflicting() { @@ -1677,9 +1693,11 @@ fn local_transitive_conflicting() { /// │ └── a-1.0.0 /// │ └── requires b==2.0.0 /// │ ├── satisfied by b-2.0.0 +/// │ ├── satisfied by b-2.0.0+bar /// │ └── satisfied by b-2.0.0+foo /// └── b /// ├── b-2.0.0 +/// ├── b-2.0.0+bar /// └── b-2.0.0+foo /// ``` #[test] @@ -1693,20 +1711,29 @@ fn local_transitive_confounding() { uv_snapshot!(filters, command(&context) .arg("local-transitive-confounding-a") , @r###" - success: false - exit_code: 1 + success: true + exit_code: 0 ----- stdout ----- ----- stderr ----- - × No solution found when resolving dependencies: - ╰─▶ Because package-b==2.0.0 has no wheels with a matching Python ABI tag and package-a==1.0.0 depends on package-b==2.0.0, we can conclude that package-a==1.0.0 cannot be used. - And because only package-a==1.0.0 is available and you require package-a, we can conclude that your requirements are unsatisfiable. + Resolved 2 packages in [TIME] + Prepared 2 packages in [TIME] + Installed 2 packages in [TIME] + + package-a==1.0.0 + + package-b==2.0.0+foo "###); // The version '2.0.0+foo' satisfies the constraint '==2.0.0'. - assert_not_installed( + assert_installed( &context.venv, "local_transitive_confounding_a", + "1.0.0", + &context.temp_dir, + ); + assert_installed( + &context.venv, + "local_transitive_confounding_b", + "2.0.0+foo", &context.temp_dir, ); } @@ -1725,8 +1752,10 @@ fn local_transitive_confounding() { /// ├── a /// │ └── a-1.0.0 /// │ └── requires b>=2.0.0 +/// │ ├── satisfied by b-2.0.0+bar /// │ └── satisfied by b-2.0.0+foo /// └── b +/// ├── b-2.0.0+bar /// └── b-2.0.0+foo /// ``` #[test] @@ -1784,6 +1813,7 @@ fn local_transitive_greater_than_or_equal() { /// │ └── requires b>2.0.0 /// │ └── unsatisfied: no matching version /// └── b +/// ├── b-2.0.0+bar /// └── b-2.0.0+foo /// ``` #[test] @@ -1834,8 +1864,10 @@ fn local_transitive_greater_than() { /// ├── a /// │ └── a-1.0.0 /// │ └── requires b<=2.0.0 +/// │ ├── satisfied by b-2.0.0+bar /// │ └── satisfied by b-2.0.0+foo /// └── b +/// ├── b-2.0.0+bar /// └── b-2.0.0+foo /// ``` #[test] @@ -1893,6 +1925,7 @@ fn local_transitive_less_than_or_equal() { /// │ └── requires b<2.0.0 /// │ └── unsatisfied: no matching version /// └── b +/// ├── b-2.0.0+bar /// └── b-2.0.0+foo /// ``` #[test] @@ -1943,9 +1976,11 @@ fn local_transitive_less_than() { /// ├── a /// │ └── a-1.0.0 /// │ └── requires b==2.0.0 -/// │ └── satisfied by b-2.0.0+foo +/// │ ├── satisfied by b-2.0.0+foo +/// │ └── satisfied by b-2.0.0+bar /// └── b -/// └── b-2.0.0+foo +/// ├── b-2.0.0+foo +/// └── b-2.0.0+bar /// ``` #[test] fn local_transitive() { @@ -2011,19 +2046,22 @@ fn local_used_without_sdist() { uv_snapshot!(filters, command(&context) .arg("local-used-without-sdist-a==1.2.3") , @r###" - success: false - exit_code: 1 + success: true + exit_code: 0 ----- stdout ----- ----- stderr ----- - × No solution found when resolving dependencies: - ╰─▶ Because package-a==1.2.3 has no wheels with a matching Python ABI tag and you require package-a==1.2.3, we can conclude that your requirements are unsatisfiable. + Resolved 1 package in [TIME] + Prepared 1 package in [TIME] + Installed 1 package in [TIME] + + package-a==1.2.3+foo "###); // The version '1.2.3+foo' satisfies the constraint '==1.2.3'. - assert_not_installed( + assert_installed( &context.venv, "local_used_without_sdist_a", + "1.2.3+foo", &context.temp_dir, ); } diff --git a/crates/uv/tests/it/snapshots/it__ecosystem__transformers-lock-file.snap b/crates/uv/tests/it/snapshots/it__ecosystem__transformers-lock-file.snap index 60ed4497ca67..c91826241a67 100644 --- a/crates/uv/tests/it/snapshots/it__ecosystem__transformers-lock-file.snap +++ b/crates/uv/tests/it/snapshots/it__ecosystem__transformers-lock-file.snap @@ -1,5 +1,5 @@ --- -source: crates/uv/tests/ecosystem.rs +source: crates/uv/tests/it/ecosystem.rs expression: lock --- version = 1 @@ -774,71 +774,26 @@ wheels = [ name = "datasets" version = "2.14.4" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'", -] dependencies = [ - { name = "aiohttp", marker = "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'" }, - { name = "dill", marker = "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'" }, - { name = "fsspec", version = "2024.6.1", source = { registry = "https://pypi.org/simple" }, extra = ["http"], marker = "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'" }, - { name = "huggingface-hub", marker = "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'" }, - { name = "multiprocess", marker = "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'" }, - { name = "numpy", marker = "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'" }, - { name = "packaging", marker = "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'" }, - { name = "pandas", marker = "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'" }, - { name = "pyarrow", marker = "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'" }, - { name = "pyyaml", marker = "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'" }, - { name = "requests", marker = "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'" }, - { name = "tqdm", marker = "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'" }, - { name = "xxhash", marker = "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'" }, + { name = "aiohttp" }, + { name = "dill" }, + { name = "fsspec", extra = ["http"] }, + { name = "huggingface-hub" }, + { name = "multiprocess" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "pyarrow" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "tqdm" }, + { name = "xxhash" }, ] sdist = { url = "https://files.pythonhosted.org/packages/1d/69/8cc725b5d38968fd118e4ce56a483b16e75b7793854c1a392ec4a34eeb31/datasets-2.14.4.tar.gz", hash = "sha256:ef29c2b5841de488cd343cfc26ab979bff77efa4d2285af51f1ad7db5c46a83b", size = 2178719 } wheels = [ { url = "https://files.pythonhosted.org/packages/66/f8/38298237d18d4b6a8ee5dfe390e97bed5adb8e01ec6f9680c0ddf3066728/datasets-2.14.4-py3-none-any.whl", hash = "sha256:29336bd316a7d827ccd4da2236596279b20ca2ac78f64c04c9483da7cbc2459b", size = 519335 }, ] -[[package]] -name = "datasets" -version = "2.20.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version < '3.10' and platform_machine != 'aarch64' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_machine == 'aarch64' and platform_system != 'Linux') or (python_full_version < '3.10' and platform_machine == 'arm64' and platform_system != 'Darwin')", - "python_full_version == '3.10.*' and platform_system == 'Darwin'", - "python_full_version == '3.10.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.10.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.10.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version == '3.11.*' and platform_system == 'Darwin'", - "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.11.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version == '3.12.*' and platform_system == 'Darwin'", - "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.12.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version >= '3.13' and platform_system == 'Darwin'", - "python_full_version >= '3.13' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version >= '3.13' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version >= '3.13' and platform_system != 'Darwin' and platform_system != 'Linux')", -] -dependencies = [ - { name = "aiohttp", marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, - { name = "dill", marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, - { name = "filelock", marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, - { name = "fsspec", version = "2024.5.0", source = { registry = "https://pypi.org/simple" }, extra = ["http"], marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, - { name = "huggingface-hub", marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, - { name = "multiprocess", marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, - { name = "numpy", marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, - { name = "packaging", marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, - { name = "pandas", marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, - { name = "pyarrow", marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, - { name = "pyarrow-hotfix", marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, - { name = "pyyaml", marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, - { name = "requests", marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, - { name = "tqdm", marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, - { name = "xxhash", marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/d5/59/b94bfb5f6225c4c931cd516390b3f006e232a036a48337f72889c6c9ab27/datasets-2.20.0.tar.gz", hash = "sha256:3c4dbcd27e0f642b9d41d20ff2efa721a5e04b32b2ca4009e0fc9139e324553f", size = 2225757 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/60/2d/963b266bb8f88492d5ab4232d74292af8beb5b6fdae97902df9e284d4c32/datasets-2.20.0-py3-none-any.whl", hash = "sha256:76ac02e3bdfff824492e20678f0b6b1b6d080515957fe834b00c2ba8d6b18e5e", size = 547777 }, -] - [[package]] name = "decorator" version = "5.1.1" @@ -940,8 +895,7 @@ wheels = [ [package.optional-dependencies] epath = [ - { name = "fsspec", version = "2024.5.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, - { name = "fsspec", version = "2024.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'" }, + { name = "fsspec" }, { name = "importlib-resources" }, { name = "typing-extensions" }, { name = "zipp" }, @@ -955,11 +909,9 @@ name = "evaluate" version = "0.4.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "datasets", version = "2.14.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'" }, - { name = "datasets", version = "2.20.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, + { name = "datasets" }, { name = "dill" }, - { name = "fsspec", version = "2024.5.0", source = { registry = "https://pypi.org/simple" }, extra = ["http"], marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, - { name = "fsspec", version = "2024.6.1", source = { registry = "https://pypi.org/simple" }, extra = ["http"], marker = "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'" }, + { name = "fsspec", extra = ["http"] }, { name = "huggingface-hub" }, { name = "multiprocess" }, { name = "numpy" }, @@ -1083,38 +1035,10 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/61/80/ffe1da13ad9300f87c93af113edd0638c75138c42a0994becfacac078c06/flask-3.0.3-py3-none-any.whl", hash = "sha256:34e815dfaa43340d1d15a5c3a02b8476004037eb4840b34910c6e21679d288f3", size = 101735 }, ] -[[package]] -name = "flatbuffers" -version = "2.0.7" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version < '3.10' and platform_machine != 'aarch64' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_machine == 'aarch64' and platform_system != 'Linux') or (python_full_version < '3.10' and platform_machine == 'arm64' and platform_system != 'Darwin')", - "python_full_version == '3.10.*' and platform_system == 'Darwin'", - "python_full_version == '3.10.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.10.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.10.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version == '3.11.*' and platform_system == 'Darwin'", - "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.11.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version == '3.12.*' and platform_system == 'Darwin'", - "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.12.*' and platform_system != 'Darwin' and platform_system != 'Linux')", -] -sdist = { url = "https://files.pythonhosted.org/packages/d1/90/0532e737a11e1dc50e9e352c3ccc97338cb75991f83279c2edbc9234e022/flatbuffers-2.0.7.tar.gz", hash = "sha256:0ae7d69c5b82bf41962ca5fde9cc43033bc9501311d975fd5a25e8a7d29c1245", size = 22686 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d7/0d/b5bfb553a6ac66d6ec2b6d7f1e814a908fba7188356ac94bb36ae3d905c3/flatbuffers-2.0.7-py2.py3-none-any.whl", hash = "sha256:71e135d533be527192819aaab757c5e3d109cb10fbb01e687f6bdb7a61ad39d1", size = 26562 }, -] - [[package]] name = "flatbuffers" version = "24.3.25" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'", - "python_full_version >= '3.13' and platform_system == 'Darwin'", - "python_full_version >= '3.13' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version >= '3.13' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version >= '3.13' and platform_system != 'Darwin' and platform_system != 'Linux')", -] sdist = { url = "https://files.pythonhosted.org/packages/a9/74/2df95ef84b214d2bee0886d572775a6f38793f5ca6d7630c3239c91104ac/flatbuffers-24.3.25.tar.gz", hash = "sha256:de2ec5b203f21441716617f38443e0a8ebf3d25bf0d9c0bb0ce68fa00ad546a4", size = 22139 } wheels = [ { url = "https://files.pythonhosted.org/packages/41/f0/7e988a019bc54b2dbd0ad4182ef2d53488bb02e58694cd79d61369e85900/flatbuffers-24.3.25-py2.py3-none-any.whl", hash = "sha256:8dbdec58f935f3765e4f7f3cf635ac3a77f83568138d6a2311f524ec96364812", size = 26784 }, @@ -1209,43 +1133,10 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/83/10/466fe96dae1bff622021ee687f68e5524d6392b0a2f80d05001cd3a451ba/frozenlist-1.4.1-py3-none-any.whl", hash = "sha256:04ced3e6a46b4cfffe20f9ae482818e34eba9b5fb0ce4056e4cc9b6e212d09b7", size = 11552 }, ] -[[package]] -name = "fsspec" -version = "2024.5.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version < '3.10' and platform_machine != 'aarch64' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_machine == 'aarch64' and platform_system != 'Linux') or (python_full_version < '3.10' and platform_machine == 'arm64' and platform_system != 'Darwin')", - "python_full_version == '3.10.*' and platform_system == 'Darwin'", - "python_full_version == '3.10.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.10.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.10.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version == '3.11.*' and platform_system == 'Darwin'", - "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.11.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version == '3.12.*' and platform_system == 'Darwin'", - "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.12.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version >= '3.13' and platform_system == 'Darwin'", - "python_full_version >= '3.13' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version >= '3.13' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version >= '3.13' and platform_system != 'Darwin' and platform_system != 'Linux')", -] -sdist = { url = "https://files.pythonhosted.org/packages/71/28/cbf337fddd6f22686b7c2639b80e006accd904db152fe333fd98f4cd8d1e/fsspec-2024.5.0.tar.gz", hash = "sha256:1d021b0b0f933e3b3029ed808eb400c08ba101ca2de4b3483fbc9ca23fcee94a", size = 400066 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ba/a3/16e9fe32187e9c8bc7f9b7bcd9728529faa725231a0c96f2f98714ff2fc5/fsspec-2024.5.0-py3-none-any.whl", hash = "sha256:e0fdbc446d67e182f49a70b82cf7889028a63588fde6b222521f10937b2b670c", size = 316106 }, -] - -[package.optional-dependencies] -http = [ - { name = "aiohttp", marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, -] - [[package]] name = "fsspec" version = "2024.6.1" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'", -] sdist = { url = "https://files.pythonhosted.org/packages/90/b6/eba5024a9889fcfff396db543a34bef0ab9d002278f163129f9f01005960/fsspec-2024.6.1.tar.gz", hash = "sha256:fad7d7e209dd4c1208e3bbfda706620e0da5142bebbd9c384afb95b07e798e49", size = 284584 } wheels = [ { url = "https://files.pythonhosted.org/packages/5e/44/73bea497ac69bafde2ee4269292fa3b41f1198f4bb7bbaaabde30ad29d4a/fsspec-2024.6.1-py3-none-any.whl", hash = "sha256:3cb443f8bcd2efb31295a5b9fdb02aee81d8452c80d28f97a6d0959e6cee101e", size = 177561 }, @@ -1253,7 +1144,7 @@ wheels = [ [package.optional-dependencies] http = [ - { name = "aiohttp", marker = "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'" }, + { name = "aiohttp" }, ] [[package]] @@ -1302,38 +1193,10 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e6/18/b9b2db4d763e6c9a73c758ed5bc1446d30177b5b903e165a884f1d3ca406/fugashi-1.3.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:21d2dac5b085632f1f9a24edf5d7ccaeb3272be672e4aa37a0b219fc7a3b0655", size = 507921 }, ] -[[package]] -name = "gast" -version = "0.4.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version < '3.10' and platform_machine != 'aarch64' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_machine == 'aarch64' and platform_system != 'Linux') or (python_full_version < '3.10' and platform_machine == 'arm64' and platform_system != 'Darwin')", - "python_full_version == '3.10.*' and platform_system == 'Darwin'", - "python_full_version == '3.10.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.10.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.10.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version == '3.11.*' and platform_system == 'Darwin'", - "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.11.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version == '3.12.*' and platform_system == 'Darwin'", - "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.12.*' and platform_system != 'Darwin' and platform_system != 'Linux')", -] -sdist = { url = "https://files.pythonhosted.org/packages/83/4a/07c7e59cef23fb147454663c3271c21da68ba2ab141427c20548ae5a8a4d/gast-0.4.0.tar.gz", hash = "sha256:40feb7b8b8434785585ab224d1568b857edb18297e5a3047f1ba012bc83b42c1", size = 13804 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b6/48/583c032b79ae5b3daa02225a675aeb673e58d2cb698e78510feceb11958c/gast-0.4.0-py3-none-any.whl", hash = "sha256:b7adcdd5adbebf1adf17378da5ba3f543684dbec47b1cda1f3997e573cd542c4", size = 9824 }, -] - [[package]] name = "gast" version = "0.6.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'", - "python_full_version >= '3.13' and platform_system == 'Darwin'", - "python_full_version >= '3.13' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version >= '3.13' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version >= '3.13' and platform_system != 'Darwin' and platform_system != 'Linux')", -] sdist = { url = "https://files.pythonhosted.org/packages/3c/14/c566f5ca00c115db7725263408ff952b8ae6d6a4e792ef9c84e77d9af7a1/gast-0.6.0.tar.gz", hash = "sha256:88fc5300d32c7ac6ca7b515310862f71e6fdf2c029bbec7c66c0f5dd47b6b1fb", size = 27708 } wheels = [ { url = "https://files.pythonhosted.org/packages/a3/61/8001b38461d751cd1a0c3a6ae84346796a5758123f3ed97a1b121dfbf4f3/gast-0.6.0-py3-none-any.whl", hash = "sha256:52b182313f7330389f72b069ba00f174cfe2a06411099547288839c6cbafbd54", size = 21173 }, @@ -1368,9 +1231,9 @@ name = "google-auth" version = "2.33.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "cachetools", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "pyasn1-modules", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "rsa", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, + { name = "cachetools" }, + { name = "pyasn1-modules" }, + { name = "rsa" }, ] sdist = { url = "https://files.pythonhosted.org/packages/28/4d/626b37c6bcc1f211aef23f47c49375072c0cb19148627d98c85e099acbc8/google_auth-2.33.0.tar.gz", hash = "sha256:d6a52342160d7290e334b4d47ba390767e4438ad0d45b7630774533e82655b95", size = 257157 } wheels = [ @@ -1382,8 +1245,8 @@ name = "google-auth-oauthlib" version = "1.2.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "google-auth", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "requests-oauthlib", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, + { name = "google-auth" }, + { name = "requests-oauthlib" }, ] sdist = { url = "https://files.pythonhosted.org/packages/cc/0f/1772edb8d75ecf6280f1c7f51cbcebe274e8b17878b382f63738fd96cee5/google_auth_oauthlib-1.2.1.tar.gz", hash = "sha256:afd0cad092a2eaa53cd8e8298557d6de1034c6cb4a740500b5357b648af97263", size = 24970 } wheels = [ @@ -1560,8 +1423,7 @@ version = "0.24.5" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "filelock" }, - { name = "fsspec", version = "2024.5.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, - { name = "fsspec", version = "2024.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'" }, + { name = "fsspec" }, { name = "packaging" }, { name = "pyyaml" }, { name = "requests" }, @@ -1683,8 +1545,7 @@ version = "0.4.13" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "importlib-metadata", marker = "python_full_version < '3.10'" }, - { name = "ml-dtypes", version = "0.3.2", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "ml-dtypes", version = "0.4.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, + { name = "ml-dtypes" }, { name = "numpy" }, { name = "opt-einsum" }, { name = "scipy" }, @@ -1696,8 +1557,7 @@ name = "jaxlib" version = "0.4.13" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "ml-dtypes", version = "0.3.2", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "ml-dtypes", version = "0.4.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, + { name = "ml-dtypes" }, { name = "numpy" }, { name = "scipy" }, ] @@ -1820,37 +1680,10 @@ version = "0.2.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/97/76/6a7479e3546d34ee46fc960c8d0ccf281f26ed18956d17f4ec5dcb1fa377/kenlm-0.2.0.tar.gz", hash = "sha256:c2dc1dc09d3c150e6a1777ef0fd5cac3688e1dc1cc13e41472d0284e5e88ac7f", size = 427425 } -[[package]] -name = "keras" -version = "2.7.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version < '3.10' and platform_machine != 'aarch64' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_machine == 'aarch64' and platform_system != 'Linux') or (python_full_version < '3.10' and platform_machine == 'arm64' and platform_system != 'Darwin')", - "python_full_version == '3.10.*' and platform_system == 'Darwin'", - "python_full_version == '3.10.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.10.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.10.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version == '3.11.*' and platform_system == 'Darwin'", - "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.11.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version == '3.12.*' and platform_system == 'Darwin'", - "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.12.*' and platform_system != 'Darwin' and platform_system != 'Linux')", -] -wheels = [ - { url = "https://files.pythonhosted.org/packages/6b/8b/065f94ba03282fa41b2d76942b87a180a9913312c4611ea7d6508fbbc114/keras-2.7.0-py2.py3-none-any.whl", hash = "sha256:0c33ae1f728064ca0d35dfba999e9c316f03623bf5688c82fb83cc74a80ea248", size = 1332171 }, -] - [[package]] name = "keras" version = "2.15.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'", - "python_full_version >= '3.13' and platform_system == 'Darwin'", - "python_full_version >= '3.13' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version >= '3.13' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version >= '3.13' and platform_system != 'Darwin' and platform_system != 'Linux')", -] sdist = { url = "https://files.pythonhosted.org/packages/b5/03/80072f4ee46e3c77e95b06d684fadf90a67759e4e9f1d86a563e0965c71a/keras-2.15.0.tar.gz", hash = "sha256:81871d298c064dc4ac6b58440fdae67bfcf47c8d7ad28580fab401834c06a575", size = 1252015 } wheels = [ { url = "https://files.pythonhosted.org/packages/fc/a7/0d4490de967a67f68a538cc9cdb259bff971c4b5787f7765dc7c8f118f71/keras-2.15.0-py3-none-any.whl", hash = "sha256:2dcc6d2e30cf9c951064b63c1f4c404b966c59caf09e01f3549138ec8ee0dd1f", size = 1710438 }, @@ -1867,27 +1700,13 @@ dependencies = [ { name = "packaging" }, { name = "regex" }, { name = "rich" }, - { name = "tensorflow-text", version = "2.7.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.13' and platform_system != 'Darwin'" }, - { name = "tensorflow-text", version = "2.15.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.13' and platform_system != 'Darwin'" }, + { name = "tensorflow-text", marker = "platform_system != 'Darwin'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/da/bf/7f34bfd78555f8ce68f51f6583b4a91a279e34dee2013047e338529c3f8a/keras_nlp-0.14.4.tar.gz", hash = "sha256:abd5886efc60d52f0970ac43d3791c87624bfa8f7a7048a66f9dbcb2d1d28771", size = 331838 } wheels = [ { url = "https://files.pythonhosted.org/packages/0e/e9/abbca8edef533acc7deec437742eb9c8c542d03534cab3bee7835bd97f3f/keras_nlp-0.14.4-py3-none-any.whl", hash = "sha256:13664b96c4551f4734074d502a961e8f994ee2ce15c7e94e472b33f1d4bf109c", size = 572242 }, ] -[[package]] -name = "keras-preprocessing" -version = "1.1.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "numpy", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "six", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/5e/f1/b44337faca48874333769a29398fe4666686733c8880aa160b9fd5dfe600/Keras_Preprocessing-1.1.2.tar.gz", hash = "sha256:add82567c50c8bc648c14195bf544a5ce7c1f76761536956c3d2978970179ef3", size = 163598 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/79/4c/7c3275a01e12ef9368a892926ab932b33bb13d55794881e3573482b378a7/Keras_Preprocessing-1.1.2-py2.py3-none-any.whl", hash = "sha256:7b82029b130ff61cc99b55f3bd27427df4838576838c5b2f65940e4fcec99a7b", size = 42581 }, -] - [[package]] name = "language-tags" version = "1.2.0" @@ -2179,14 +1998,8 @@ wheels = [ name = "ml-dtypes" version = "0.3.2" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'", - "python_full_version >= '3.13' and platform_system == 'Darwin'", - "python_full_version >= '3.13' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version >= '3.13' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version >= '3.13' and platform_system != 'Darwin' and platform_system != 'Linux')", -] dependencies = [ - { name = "numpy", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, + { name = "numpy" }, ] sdist = { url = "https://files.pythonhosted.org/packages/39/7d/8d85fcba868758b3a546e6914e727abd8f29ea6918079f816975c9eecd63/ml_dtypes-0.3.2.tar.gz", hash = "sha256:533059bc5f1764fac071ef54598db358c167c51a718f68f5bb55e3dee79d2967", size = 692014 } wheels = [ @@ -2208,46 +2021,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/38/3c/5d058a50340759423b25cb99f930cb3691fc30ebe86d53fdf1bff55c2d71/ml_dtypes-0.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:7ba8e1fafc7fff3e643f453bffa7d082df1678a73286ce8187d3e825e776eb94", size = 127704 }, ] -[[package]] -name = "ml-dtypes" -version = "0.4.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version < '3.10' and platform_machine != 'aarch64' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_machine == 'aarch64' and platform_system != 'Linux') or (python_full_version < '3.10' and platform_machine == 'arm64' and platform_system != 'Darwin')", - "python_full_version == '3.10.*' and platform_system == 'Darwin'", - "python_full_version == '3.10.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.10.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.10.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version == '3.11.*' and platform_system == 'Darwin'", - "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.11.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version == '3.12.*' and platform_system == 'Darwin'", - "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.12.*' and platform_system != 'Darwin' and platform_system != 'Linux')", -] -dependencies = [ - { name = "numpy", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/dd/50/17ab8a66d66bdf55ff6dea6fe2df424061cee65c6d772abc871bb563f91b/ml_dtypes-0.4.0.tar.gz", hash = "sha256:eaf197e72f4f7176a19fe3cb8b61846b38c6757607e7bf9cd4b1d84cd3e74deb", size = 692650 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/bc/26/62b6c86ecbe59dbb960be9b134b1d153cc9e0b9c54c8f19b63759403f59c/ml_dtypes-0.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:93afe37f3a879d652ec9ef1fc47612388890660a2657fbb5747256c3b818fd81", size = 390928 }, - { url = "https://files.pythonhosted.org/packages/f4/7d/1e84fa0db717f9fd27d19649f67bd01df1e3f92e041d58b918b39e1898a4/ml_dtypes-0.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2bb83fd064db43e67e67d021e547698af4c8d5c6190f2e9b1c53c09f6ff5531d", size = 2184075 }, - { url = "https://files.pythonhosted.org/packages/9d/15/e5af59287e712b26ce776f00911c45c97ac9f4cd82d46500602cc94127ed/ml_dtypes-0.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03e7cda6ef164eed0abb31df69d2c00c3a5ab3e2610b6d4c42183a43329c72a5", size = 2158374 }, - { url = "https://files.pythonhosted.org/packages/ea/31/cc9b87fbbb3f4bf2cb1a4aeb7648bd6d6c558dc3f60e1bd21958f18ddf71/ml_dtypes-0.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:a15d96d090aebb55ee85173d1775ae325a001aab607a76c8ea0b964ccd6b5364", size = 126622 }, - { url = "https://files.pythonhosted.org/packages/42/6b/b2fa3e2386c2b7dde43f12b83c67f6e583039141dfbb58e5c8fd365a5a7d/ml_dtypes-0.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bdf689be7351cc3c95110c910c1b864002f113e682e44508910c849e144f3df1", size = 390927 }, - { url = "https://files.pythonhosted.org/packages/17/9b/6c655eae05ba3edb30cb03e116dfbe722775b26234b16ed0a14007c871ed/ml_dtypes-0.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c83e4d443962d891d51669ff241d5aaad10a8d3d37a81c5532a45419885d591c", size = 2186867 }, - { url = "https://files.pythonhosted.org/packages/84/17/a936d3dfad84d028ba8539a93167274b7dcd7985e0d9df487e94a62f9428/ml_dtypes-0.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1e2f4237b459a63c97c2c9f449baa637d7e4c20addff6a9bac486f22432f3b6", size = 2161456 }, - { url = "https://files.pythonhosted.org/packages/f0/36/290745178e5776f7416818abc1334c1b19afb93c7c87fd1bef3cc99f84ca/ml_dtypes-0.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:75b4faf99d0711b81f393db36d210b4255fd419f6f790bc6c1b461f95ffb7a9e", size = 126751 }, - { url = "https://files.pythonhosted.org/packages/30/9d/890e8c9cb556cec121f784fd84089e1e52939ba6eabf5dc62f6435db28d6/ml_dtypes-0.4.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:ee9f91d4c4f9959a7e1051c141dc565f39e54435618152219769e24f5e9a4d06", size = 394380 }, - { url = "https://files.pythonhosted.org/packages/37/d5/3f3085b3a155e1b84c7fc680f05538d31cf01b835aa19cb17edd4994693f/ml_dtypes-0.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad6849a2db386b38e4d54fe13eb3293464561780531a918f8ef4c8169170dd49", size = 2181698 }, - { url = "https://files.pythonhosted.org/packages/8c/ef/5635b60d444db9c949b32d4e1a0a30b3ac237afbd71cce8bd1ccfb145723/ml_dtypes-0.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaa32979ebfde3a0d7c947cafbf79edc1ec77ac05ad0780ee86c1d8df70f2259", size = 2158784 }, - { url = "https://files.pythonhosted.org/packages/0f/b7/7cfca987ca898b64c0b7d185e957fbd8dccb64fe5ae9e44f68ec83371df5/ml_dtypes-0.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:3b67ec73a697c88c1122038e0de46520e48dc2ec876d42cf61bc5efe3c0b7675", size = 127498 }, - { url = "https://files.pythonhosted.org/packages/4f/df/455704233905ce4fab09b2a80d81ab61d850d530b7ae68acb7f8ef99d349/ml_dtypes-0.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:41affb38fdfe146e3db226cf2953021184d6f0c4ffab52136613e9601706e368", size = 390888 }, - { url = "https://files.pythonhosted.org/packages/50/96/13d7c3cc82d5ef597279216cf56ff461f8b57e7096a3ef10246a83ca80c0/ml_dtypes-0.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:43cf4356a0fe2eeac6d289018d0734e17a403bdf1fd911953c125dd0358edcc0", size = 2181059 }, - { url = "https://files.pythonhosted.org/packages/23/1c/06b52d3dcd75a81f6ca1e56514db6b21fe928f159cc5302428c1fed46562/ml_dtypes-0.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1724ddcdf5edbaf615a62110af47407f1719b8d02e68ccee60683acb5f74da1", size = 2156133 }, - { url = "https://files.pythonhosted.org/packages/9a/83/a26cb6635ffd9bee8af8d5cbb3feb71b782f8729ac1df7034cc017d8e9fd/ml_dtypes-0.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:723af6346447268a3cf0b7356e963d80ecb5732b5279b2aa3fa4b9fc8297c85e", size = 126734 }, -] - [[package]] name = "mpmath" version = "1.3.0" @@ -2727,8 +2500,7 @@ version = "1.18.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "coloredlogs" }, - { name = "flatbuffers", version = "2.0.7", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "flatbuffers", version = "24.3.25", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, + { name = "flatbuffers" }, { name = "numpy" }, { name = "packaging" }, { name = "protobuf" }, @@ -3222,15 +2994,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e7/f6/b75d4816c32f1618ed31a005ee635dd1d91d8164495d94f2ea092f594661/pyarrow-17.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:42bf93249a083aca230ba7e2786c5f673507fa97bbd9725a1e2754715151a204", size = 25148611 }, ] -[[package]] -name = "pyarrow-hotfix" -version = "0.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/70/0a/71da7b0db0c7078d4cf34ecf0c70ded5ed29decc06612097474e0114f4cc/pyarrow_hotfix-0.6.tar.gz", hash = "sha256:79d3e030f7ff890d408a100ac16d6f00b14d44a502d7897cd9fc3e3a534e9945", size = 9754 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e4/f4/9ec2222f5f5f8ea04f66f184caafd991a39c8782e31f5b0266f101cb68ca/pyarrow_hotfix-0.6-py3-none-any.whl", hash = "sha256:dcc9ae2d220dff0083be6a9aa8e0cdee5182ad358d4931fce825c545e5c89178", size = 7888 }, -] - [[package]] name = "pyasn1" version = "0.6.0" @@ -3245,7 +3008,7 @@ name = "pyasn1-modules" version = "0.4.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "pyasn1", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, + { name = "pyasn1" }, ] sdist = { url = "https://files.pythonhosted.org/packages/f7/00/e7bd1dec10667e3f2be602686537969a7ac92b0a7c5165be2e5875dc3971/pyasn1_modules-0.4.0.tar.gz", hash = "sha256:831dbcea1b177b28c9baddf4c6d1013c24c3accd14a1873fffaa6a2e905f17b6", size = 307859 } wheels = [ @@ -3622,8 +3385,7 @@ wheels = [ [package.optional-dependencies] tune = [ - { name = "fsspec", version = "2024.5.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, - { name = "fsspec", version = "2024.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'" }, + { name = "fsspec" }, { name = "pandas" }, { name = "pyarrow" }, { name = "requests" }, @@ -3746,8 +3508,8 @@ name = "requests-oauthlib" version = "2.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "oauthlib", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "requests", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, + { name = "oauthlib" }, + { name = "requests" }, ] sdist = { url = "https://files.pythonhosted.org/packages/42/f2/05f29bc3913aea15eb670be136045bf5c5bbf4b99ecb839da9b422bb2c85/requests-oauthlib-2.0.0.tar.gz", hash = "sha256:b3dffaebd884d8cd778494369603a9e7b58d29111bf6b41bdc2dcd87203af4e9", size = 55650 } wheels = [ @@ -3934,7 +3696,7 @@ name = "rsa" version = "4.9" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "pyasn1", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, + { name = "pyasn1" }, ] sdist = { url = "https://files.pythonhosted.org/packages/aa/65/7d973b89c4d2351d7fb232c2e452547ddfa243e93131e7cfa766da627b52/rsa-4.9.tar.gz", hash = "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21", size = 29711 } wheels = [ @@ -4512,62 +4274,24 @@ wheels = [ name = "tensorboard" version = "2.15.2" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'", - "python_full_version >= '3.13' and platform_system == 'Darwin'", - "python_full_version >= '3.13' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version >= '3.13' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version >= '3.13' and platform_system != 'Darwin' and platform_system != 'Linux')", -] dependencies = [ - { name = "absl-py", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "google-auth", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "google-auth-oauthlib", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "grpcio", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "markdown", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "numpy", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "protobuf", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "requests", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "setuptools", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "six", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "tensorboard-data-server", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "werkzeug", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, + { name = "absl-py" }, + { name = "google-auth" }, + { name = "google-auth-oauthlib" }, + { name = "grpcio" }, + { name = "markdown" }, + { name = "numpy" }, + { name = "protobuf" }, + { name = "requests" }, + { name = "setuptools" }, + { name = "six" }, + { name = "tensorboard-data-server" }, + { name = "werkzeug" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/37/12/f6e9b9dcc310263cbd3948274e286538bd6800fd0c268850788f14a0c6d0/tensorboard-2.15.2-py3-none-any.whl", hash = "sha256:a6f6443728064d962caea6d34653e220e34ef8df764cb06a8212c17e1a8f0622", size = 5539713 }, ] -[[package]] -name = "tensorboard" -version = "2.17.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version < '3.10' and platform_machine != 'aarch64' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_machine == 'aarch64' and platform_system != 'Linux') or (python_full_version < '3.10' and platform_machine == 'arm64' and platform_system != 'Darwin')", - "python_full_version == '3.10.*' and platform_system == 'Darwin'", - "python_full_version == '3.10.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.10.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.10.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version == '3.11.*' and platform_system == 'Darwin'", - "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.11.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version == '3.12.*' and platform_system == 'Darwin'", - "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.12.*' and platform_system != 'Darwin' and platform_system != 'Linux')", -] -dependencies = [ - { name = "absl-py", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "grpcio", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "markdown", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "numpy", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "protobuf", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "setuptools", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "six", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "tensorboard-data-server", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "werkzeug", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, -] -wheels = [ - { url = "https://files.pythonhosted.org/packages/0a/32/2e8545fb0592f33e3aca5951e8b01008b76d61b440658cbdc37b4eaebf0b/tensorboard-2.17.0-py3-none-any.whl", hash = "sha256:859a499a9b1fb68a058858964486627100b71fcb21646861c61d31846a6478fb", size = 5502603 }, -] - [[package]] name = "tensorboard-data-server" version = "0.7.2" @@ -4592,85 +4316,33 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/44/71/f3e7c9b2ab67e28c572ab4e9d5fa3499e0d252650f96d8a3a03e26677f53/tensorboardX-2.6.2.2-py2.py3-none-any.whl", hash = "sha256:160025acbf759ede23fd3526ae9d9bfbfd8b68eb16c38a010ebe326dc6395db8", size = 101700 }, ] -[[package]] -name = "tensorflow" -version = "2.7.2" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version < '3.10' and platform_machine != 'aarch64' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_machine == 'aarch64' and platform_system != 'Linux') or (python_full_version < '3.10' and platform_machine == 'arm64' and platform_system != 'Darwin')", - "python_full_version == '3.10.*' and platform_system == 'Darwin'", - "python_full_version == '3.10.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.10.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.10.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version == '3.11.*' and platform_system == 'Darwin'", - "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.11.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version == '3.12.*' and platform_system == 'Darwin'", - "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.12.*' and platform_system != 'Darwin' and platform_system != 'Linux')", -] -dependencies = [ - { name = "absl-py", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "astunparse", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "flatbuffers", version = "2.0.7", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "gast", version = "0.4.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "google-pasta", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "grpcio", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "h5py", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "keras", version = "2.7.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "keras-preprocessing", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "libclang", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "numpy", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "opt-einsum", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "protobuf", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "six", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "tensorboard", version = "2.17.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "tensorflow-estimator", version = "2.7.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "tensorflow-io-gcs-filesystem", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "termcolor", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "typing-extensions", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "wheel", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "wrapt", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, -] -wheels = [ - { url = "https://files.pythonhosted.org/packages/e4/87/a0d05183bac49f2c246663ee740d311ee9bd812dd39062a99b1627bf7d8e/tensorflow-2.7.2-cp39-cp39-macosx_10_11_x86_64.whl", hash = "sha256:99a85258505130b1f3ce203f11b3bb3c95442edefec96c0b221ce0d6541a92c8", size = 213094106 }, - { url = "https://files.pythonhosted.org/packages/67/9a/b1e7019fa9bb08098b73bff0c014219ae2b0cdfd1d2411c38199ec63c699/tensorflow-2.7.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:bb2115796e2e7738de1844aead493bc1f1122ff1fae65fc691bb1ce5a0fdd2aa", size = 495573354 }, - { url = "https://files.pythonhosted.org/packages/9b/10/4818933a306e65335d6e7d28ddc9d38d26fb0bf759a968f9134ec3d8fb9a/tensorflow-2.7.2-cp39-cp39-win_amd64.whl", hash = "sha256:3e35d046d0be677239b5e832854bcb291ca79388fa406d9d7547bc3377a7efbb", size = 436716480 }, -] - [[package]] name = "tensorflow" version = "2.15.1" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'", - "python_full_version >= '3.13' and platform_system == 'Darwin'", - "python_full_version >= '3.13' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version >= '3.13' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version >= '3.13' and platform_system != 'Darwin' and platform_system != 'Linux')", -] dependencies = [ - { name = "absl-py", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "astunparse", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "flatbuffers", version = "24.3.25", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "gast", version = "0.6.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "google-pasta", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "grpcio", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "h5py", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "keras", version = "2.15.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "libclang", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "ml-dtypes", version = "0.3.2", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "numpy", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "opt-einsum", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "packaging", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "protobuf", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "setuptools", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "six", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "tensorboard", version = "2.15.2", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "tensorflow-estimator", version = "2.15.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "tensorflow-io-gcs-filesystem", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "termcolor", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "typing-extensions", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "wrapt", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, + { name = "absl-py" }, + { name = "astunparse" }, + { name = "flatbuffers" }, + { name = "gast" }, + { name = "google-pasta" }, + { name = "grpcio" }, + { name = "h5py" }, + { name = "keras" }, + { name = "libclang" }, + { name = "ml-dtypes" }, + { name = "numpy" }, + { name = "opt-einsum" }, + { name = "packaging" }, + { name = "protobuf" }, + { name = "setuptools" }, + { name = "six" }, + { name = "tensorboard" }, + { name = "tensorflow-estimator" }, + { name = "tensorflow-io-gcs-filesystem" }, + { name = "termcolor" }, + { name = "typing-extensions" }, + { name = "wrapt" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/9c/d3/904d5bf64305218ce19f81ff3b2cb872cf434a558443b4a9a5357924637a/tensorflow-2.15.1-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:91b51a507007d63a70b65be307d701088d15042a6399c0e2312b53072226e909", size = 236439313 }, @@ -4690,85 +4362,33 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a5/ef/a9fe22fabd5e11bda4e322daec40d8798a504fd2ee5725a56ba786503452/tensorflow-2.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:aaf3cfa290597ebbdf19d1a78729e3f555e459506cd58f8d7399359ac5e02a05", size = 2095 }, ] -[[package]] -name = "tensorflow-cpu" -version = "2.7.2" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version < '3.10' and platform_machine != 'aarch64' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_machine == 'aarch64' and platform_system != 'Linux') or (python_full_version < '3.10' and platform_machine == 'arm64' and platform_system != 'Darwin')", - "python_full_version == '3.10.*' and platform_system == 'Darwin'", - "python_full_version == '3.10.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.10.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.10.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version == '3.11.*' and platform_system == 'Darwin'", - "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.11.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version == '3.12.*' and platform_system == 'Darwin'", - "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.12.*' and platform_system != 'Darwin' and platform_system != 'Linux')", -] -dependencies = [ - { name = "absl-py", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "astunparse", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "flatbuffers", version = "2.0.7", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "gast", version = "0.4.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "google-pasta", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "grpcio", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "h5py", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "keras", version = "2.7.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "keras-preprocessing", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "libclang", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "numpy", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "opt-einsum", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "protobuf", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "six", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "tensorboard", version = "2.17.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "tensorflow-estimator", version = "2.7.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "tensorflow-io-gcs-filesystem", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "termcolor", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "typing-extensions", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "wheel", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "wrapt", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, -] -wheels = [ - { url = "https://files.pythonhosted.org/packages/4a/55/b4697a6df0bff4d75d8aed38469d4c7e7c9669237391b58faca3fdc6257e/tensorflow_cpu-2.7.2-cp39-cp39-macosx_10_11_x86_64.whl", hash = "sha256:b6b51b49812fa062267f0547960d5cd54e23bfccd610960d2d37da802702e20a", size = 213094159 }, - { url = "https://files.pythonhosted.org/packages/5b/ca/f2c3cf65a0771ed900111170a3e62c365b7e36d2c0837ddbefa6acfdfe30/tensorflow_cpu-2.7.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:570cf87ddb909b105a8f884dc0b7015dbb17e06c1da37410930f68ab2a7449aa", size = 185774433 }, - { url = "https://files.pythonhosted.org/packages/65/04/5cf7cff5b9a168be856fccb86b11dbde13f54b261e9008e9ef342009dfb5/tensorflow_cpu-2.7.2-cp39-cp39-win_amd64.whl", hash = "sha256:503c4ba43e929dc24b6ec71ac6d717442b8ecffbc1e2ce2e1a21f23cb13ceb90", size = 242914610 }, -] - [[package]] name = "tensorflow-cpu" version = "2.15.1" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'", - "python_full_version >= '3.13' and platform_system == 'Darwin'", - "python_full_version >= '3.13' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version >= '3.13' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version >= '3.13' and platform_system != 'Darwin' and platform_system != 'Linux')", -] dependencies = [ - { name = "absl-py", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "astunparse", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "flatbuffers", version = "24.3.25", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "gast", version = "0.6.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "google-pasta", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "grpcio", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "h5py", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "keras", version = "2.15.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "libclang", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "ml-dtypes", version = "0.3.2", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "numpy", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "opt-einsum", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "packaging", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "protobuf", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "setuptools", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "six", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "tensorboard", version = "2.15.2", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "tensorflow-estimator", version = "2.15.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "tensorflow-io-gcs-filesystem", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "termcolor", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "typing-extensions", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "wrapt", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, + { name = "absl-py" }, + { name = "astunparse" }, + { name = "flatbuffers" }, + { name = "gast" }, + { name = "google-pasta" }, + { name = "grpcio" }, + { name = "h5py" }, + { name = "keras" }, + { name = "libclang" }, + { name = "ml-dtypes" }, + { name = "numpy" }, + { name = "opt-einsum" }, + { name = "packaging" }, + { name = "protobuf" }, + { name = "setuptools" }, + { name = "six" }, + { name = "tensorboard" }, + { name = "tensorflow-estimator" }, + { name = "tensorflow-io-gcs-filesystem" }, + { name = "termcolor" }, + { name = "typing-extensions" }, + { name = "wrapt" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/1f/cc/dfb0195934918847611d0d1e0a2ad3f1f8a77876a9139b8976ebdd72854c/tensorflow_cpu-2.15.1-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:f211b011e812f827f5452b1d5f19865645c65df6e2a07d71118480c40887133e", size = 236439366 }, @@ -4782,37 +4402,10 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/bd/cb/1358e60835aad684311cfab10e36375c09a8a627ed22f357ddc9f0556ca3/tensorflow_cpu-2.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:951d78693b61239464bee5ae9c20b6c845d82ae0a2092ee5abebb96b5e2db02e", size = 2133 }, ] -[[package]] -name = "tensorflow-estimator" -version = "2.7.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version < '3.10' and platform_machine != 'aarch64' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_machine == 'aarch64' and platform_system != 'Linux') or (python_full_version < '3.10' and platform_machine == 'arm64' and platform_system != 'Darwin')", - "python_full_version == '3.10.*' and platform_system == 'Darwin'", - "python_full_version == '3.10.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.10.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.10.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version == '3.11.*' and platform_system == 'Darwin'", - "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.11.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version == '3.12.*' and platform_system == 'Darwin'", - "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.12.*' and platform_system != 'Darwin' and platform_system != 'Linux')", -] -wheels = [ - { url = "https://files.pythonhosted.org/packages/db/de/3a71ad41b87f9dd424e3aec3b0794a60f169fa7e9a9a1e3dd44290b86dd6/tensorflow_estimator-2.7.0-py2.py3-none-any.whl", hash = "sha256:325b5a224864379242b7b76c6987ca544239be82579d33e68ec7c2bda57abc9d", size = 463110 }, -] - [[package]] name = "tensorflow-estimator" version = "2.15.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'", - "python_full_version >= '3.13' and platform_system == 'Darwin'", - "python_full_version >= '3.13' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version >= '3.13' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version >= '3.13' and platform_system != 'Darwin' and platform_system != 'Linux')", -] wheels = [ { url = "https://files.pythonhosted.org/packages/b6/c8/2f823c8958d5342eafc6dd3e922f0cc4fcf8c2e0460284cc462dae3b60a0/tensorflow_estimator-2.15.0-py2.py3-none-any.whl", hash = "sha256:aedf21eec7fb2dc91150fc91a1ce12bc44dbb72278a08b58e79ff87c9e28f153", size = 441974 }, ] @@ -4824,8 +4417,7 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy" }, { name = "protobuf" }, - { name = "tf-keras", version = "2.15.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "tf-keras", version = "2.15.1", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, + { name = "tf-keras" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/e5/50/00dba77925bf2a0a1e45d7bcf8a69a1d2534fb4bb277d9010bd148d2235e/tensorflow_hub-0.16.1-py2.py3-none-any.whl", hash = "sha256:e10c184b3d08daeafada11ffea2dd46781725b6bef01fad1f74d6634ad05311f", size = 30771 }, @@ -4864,47 +4456,14 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/3a/54/95b9459cd48d92a0522c8dd59955210e51747a46461bcedb64a9a77ba822/tensorflow_macos-2.15.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:cca3c9ba5b96face05716792cb1bcc70d84c5e0c34bfb7735b39c65d0334b699", size = 2158 }, ] -[[package]] -name = "tensorflow-text" -version = "2.7.3" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version < '3.10' and platform_machine != 'aarch64' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_machine == 'aarch64' and platform_system != 'Linux') or (python_full_version < '3.10' and platform_machine == 'arm64' and platform_system != 'Darwin')", - "python_full_version == '3.10.*' and platform_system == 'Darwin'", - "python_full_version == '3.10.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.10.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.10.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version == '3.11.*' and platform_system == 'Darwin'", - "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.11.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version == '3.12.*' and platform_system == 'Darwin'", - "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.12.*' and platform_system != 'Darwin' and platform_system != 'Linux')", -] -dependencies = [ - { name = "tensorflow", version = "2.7.2", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "tensorflow-hub", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, -] -wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/cc/3b8925fe8c14e558156d72c734fdb580569d3fcad67ce7dab71f62c048e2/tensorflow_text-2.7.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:53b5666c9ac019120cbc0f54ed3841b14660a1278cee1b071173253e008e9c07", size = 3979140 }, - { url = "https://files.pythonhosted.org/packages/42/c4/6915c7354cab16563eef4036232bb412a3f3b0d6054b2dddde77c9c9f7ae/tensorflow_text-2.7.3-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:16cdf7ff4202c81dbcbd782d2f77896c586832b270bf6ebed228f5ff6c00486d", size = 4883925 }, - { url = "https://files.pythonhosted.org/packages/72/1c/006bf7894330ae6c750707127afe9bfb5f0c6408cd8149abd7cf6d4cc40b/tensorflow_text-2.7.3-cp39-cp39-win_amd64.whl", hash = "sha256:53fa5c9b83120dad5e54fea49c44548e3d526bd6a618b1d9c2d9acf2a3484394", size = 2494542 }, -] - [[package]] name = "tensorflow-text" version = "2.15.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'", - "python_full_version >= '3.13' and platform_system == 'Darwin'", - "python_full_version >= '3.13' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version >= '3.13' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version >= '3.13' and platform_system != 'Darwin' and platform_system != 'Linux')", -] dependencies = [ - { name = "tensorflow", version = "2.15.1", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.13' and platform_machine != 'arm64') or (python_full_version >= '3.13' and platform_system != 'Darwin')" }, - { name = "tensorflow-hub", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "tensorflow-macos", marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or (python_full_version >= '3.13' and platform_machine == 'arm64' and platform_system == 'Darwin')" }, + { name = "tensorflow", marker = "platform_machine != 'arm64' or platform_system != 'Darwin'" }, + { name = "tensorflow-hub" }, + { name = "tensorflow-macos", marker = "platform_machine == 'arm64' and platform_system == 'Darwin'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/63/0f/d260a5cc7d86d25eb67bb919f957106b76af4a039f064526290d9cf5d93e/tensorflow_text-2.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:db09ada839eb92aa23afc6c4e37257e6665d64ae048cfdce6374b5aa33f8f006", size = 6441513 }, @@ -4920,8 +4479,7 @@ name = "tensorstore" version = "0.1.64" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "ml-dtypes", version = "0.3.2", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "ml-dtypes", version = "0.4.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, + { name = "ml-dtypes" }, { name = "numpy" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ce/b7/04d19901451da377f03a6e1ae3d9edf0b43af93309f558abf28b2e5aaceb/tensorstore-0.1.64.tar.gz", hash = "sha256:7fa89e90876fb5377efc54f3f37326a6fb83ec9e1326565819a75a4e80949886", size = 6510000 } @@ -4966,40 +4524,12 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a6/a5/c0b6468d3824fe3fde30dbb5e1f687b291608f9473681bbf7dabbf5a87d7/text_unidecode-1.3-py2.py3-none-any.whl", hash = "sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8", size = 78154 }, ] -[[package]] -name = "tf-keras" -version = "2.15.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version < '3.10' and platform_machine != 'aarch64' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_machine == 'aarch64' and platform_system != 'Linux') or (python_full_version < '3.10' and platform_machine == 'arm64' and platform_system != 'Darwin')", - "python_full_version == '3.10.*' and platform_system == 'Darwin'", - "python_full_version == '3.10.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.10.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.10.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version == '3.11.*' and platform_system == 'Darwin'", - "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.11.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version == '3.12.*' and platform_system == 'Darwin'", - "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.12.*' and platform_system != 'Darwin' and platform_system != 'Linux')", -] -sdist = { url = "https://files.pythonhosted.org/packages/ce/0c/36054828137226dc3a559b525640f296a99ee8eb38beca32b36d29bb303b/tf_keras-2.15.0.tar.gz", hash = "sha256:d7559c2ba40667679fcb2105d3e4b68bbc07ecafbf1037462ce7b3974c3c6798", size = 1250420 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/19/26/ca8a6cca61f2a44f1e7ee71ebdb9c8dfbc4371f418db811cdca4641f6daa/tf_keras-2.15.0-py3-none-any.whl", hash = "sha256:48607ee60a4d1fa7c09d6a44293a803faf3136e7a43f92df089ac094117547d2", size = 1714973 }, -] - [[package]] name = "tf-keras" version = "2.15.1" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'", - "python_full_version >= '3.13' and platform_system == 'Darwin'", - "python_full_version >= '3.13' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version >= '3.13' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version >= '3.13' and platform_system != 'Darwin' and platform_system != 'Linux')", -] dependencies = [ - { name = "tensorflow", version = "2.15.1", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, + { name = "tensorflow" }, ] sdist = { url = "https://files.pythonhosted.org/packages/03/a3/72e49c210fe545159c98842f110f024195f8efefc2e310f8eac77e3d599e/tf_keras-2.15.1.tar.gz", hash = "sha256:40ab605cecc7759c657cb2bccd9efaacd6fc2369a6c1eba8053890afeac46886", size = 1251021 } wheels = [ @@ -5010,52 +4540,17 @@ wheels = [ name = "tf2onnx" version = "1.8.4" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'", - "python_full_version == '3.10.*' and platform_system == 'Darwin'", - "python_full_version == '3.10.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.10.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.10.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version == '3.11.*' and platform_system == 'Darwin'", - "python_full_version == '3.11.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.11.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version == '3.12.*' and platform_system == 'Darwin'", - "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version == '3.12.*' and platform_system != 'Darwin' and platform_system != 'Linux')", - "python_full_version >= '3.13' and platform_system == 'Darwin'", - "python_full_version >= '3.13' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version >= '3.13' and platform_machine != 'aarch64' and platform_system != 'Darwin') or (python_full_version >= '3.13' and platform_system != 'Darwin' and platform_system != 'Linux')", -] dependencies = [ - { name = "flatbuffers", version = "2.0.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and python_full_version < '3.13'" }, - { name = "flatbuffers", version = "24.3.25", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "numpy", marker = "(platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.10'" }, - { name = "onnx", marker = "(platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.10'" }, - { name = "requests", marker = "(platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.10'" }, - { name = "six", marker = "(platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.10'" }, + { name = "flatbuffers" }, + { name = "numpy" }, + { name = "onnx" }, + { name = "requests" }, + { name = "six" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/db/32/33ce509a79c207a39cf04bfa3ec3353da15d1e6553a6ad912f117cc29130/tf2onnx-1.8.4-py3-none-any.whl", hash = "sha256:1ebabb96c914da76e23222b6107a8b248a024bf259d77f027e6690099512d457", size = 345298 }, ] -[[package]] -name = "tf2onnx" -version = "1.14.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10' and platform_machine == 'aarch64' and platform_system == 'Linux'", - "(python_full_version < '3.10' and platform_machine != 'aarch64' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_machine == 'aarch64' and platform_system != 'Linux') or (python_full_version < '3.10' and platform_machine == 'arm64' and platform_system != 'Darwin')", -] -dependencies = [ - { name = "flatbuffers", version = "2.0.7", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin')" }, - { name = "numpy", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin')" }, - { name = "onnx", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin')" }, - { name = "requests", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin')" }, - { name = "six", marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin')" }, -] -wheels = [ - { url = "https://files.pythonhosted.org/packages/67/de/debad55cb4454d1117b58029c44c04cb993c29b8317d2d609178dbce4a72/tf2onnx-1.14.0-py3-none-any.whl", hash = "sha256:a9721a38020260e5ee9d6396295edbbfcaedd22c07cfd6f2cda2698defde9b63", size = 451228 }, -] - [[package]] name = "threadpoolctl" version = "3.5.0" @@ -5194,8 +4689,7 @@ version = "2.4.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "filelock" }, - { name = "fsspec", version = "2024.5.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, - { name = "fsspec", version = "2024.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'" }, + { name = "fsspec" }, { name = "jinja2" }, { name = "networkx" }, { name = "nvidia-cublas-cu12", marker = "platform_machine == 'x86_64' and platform_system == 'Linux'" }, @@ -5334,8 +4828,7 @@ accelerate = [ ] agents = [ { name = "accelerate" }, - { name = "datasets", version = "2.14.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'" }, - { name = "datasets", version = "2.20.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, + { name = "datasets" }, { name = "diffusers" }, { name = "opencv-python" }, { name = "pillow" }, @@ -5363,12 +4856,9 @@ all = [ { name = "ray", extra = ["tune"] }, { name = "sentencepiece" }, { name = "sigopt" }, - { name = "tensorflow", version = "2.7.2", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "tensorflow", version = "2.15.1", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "tensorflow-text", version = "2.7.3", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "tensorflow-text", version = "2.15.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "tf2onnx", version = "1.8.4", source = { registry = "https://pypi.org/simple" }, marker = "(platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.10'" }, - { name = "tf2onnx", version = "1.14.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin')" }, + { name = "tensorflow" }, + { name = "tensorflow-text" }, + { name = "tf2onnx" }, { name = "timm" }, { name = "tokenizers" }, { name = "torch" }, @@ -5392,8 +4882,7 @@ deepspeed-testing = [ { name = "accelerate" }, { name = "beautifulsoup4" }, { name = "cookiecutter" }, - { name = "datasets", version = "2.14.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'" }, - { name = "datasets", version = "2.20.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, + { name = "datasets" }, { name = "deepspeed" }, { name = "dill" }, { name = "evaluate" }, @@ -5415,8 +4904,7 @@ deepspeed-testing = [ { name = "sacrebleu" }, { name = "sacremoses" }, { name = "sentencepiece" }, - { name = "tensorboard", version = "2.15.2", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "tensorboard", version = "2.17.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, + { name = "tensorboard" }, { name = "timeout-decorator" }, ] dev-dependencies = [ @@ -5425,8 +4913,7 @@ dev-dependencies = [ { name = "beautifulsoup4" }, { name = "codecarbon" }, { name = "cookiecutter" }, - { name = "datasets", version = "2.14.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'" }, - { name = "datasets", version = "2.20.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, + { name = "datasets" }, { name = "decord" }, { name = "dill" }, { name = "evaluate" }, @@ -5470,14 +4957,10 @@ dev-dependencies = [ { name = "sigopt" }, { name = "sudachidict-core" }, { name = "sudachipy" }, - { name = "tensorboard", version = "2.15.2", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "tensorboard", version = "2.17.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "tensorflow", version = "2.7.2", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "tensorflow", version = "2.15.1", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "tensorflow-text", version = "2.7.3", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "tensorflow-text", version = "2.15.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "tf2onnx", version = "1.8.4", source = { registry = "https://pypi.org/simple" }, marker = "(platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.10'" }, - { name = "tf2onnx", version = "1.14.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin')" }, + { name = "tensorboard" }, + { name = "tensorflow" }, + { name = "tensorflow-text" }, + { name = "tf2onnx" }, { name = "timeout-decorator" }, { name = "timm" }, { name = "tokenizers" }, @@ -5510,12 +4993,9 @@ docs = [ { name = "ray", extra = ["tune"] }, { name = "sentencepiece" }, { name = "sigopt" }, - { name = "tensorflow", version = "2.7.2", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "tensorflow", version = "2.15.1", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "tensorflow-text", version = "2.7.3", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "tensorflow-text", version = "2.15.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "tf2onnx", version = "1.8.4", source = { registry = "https://pypi.org/simple" }, marker = "(platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.10'" }, - { name = "tf2onnx", version = "1.14.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin')" }, + { name = "tensorflow" }, + { name = "tensorflow-text" }, + { name = "tf2onnx" }, { name = "timm" }, { name = "tokenizers" }, { name = "torch" }, @@ -5561,8 +5041,7 @@ onnx = [ { name = "onnxconverter-common" }, { name = "onnxruntime" }, { name = "onnxruntime-tools" }, - { name = "tf2onnx", version = "1.8.4", source = { registry = "https://pypi.org/simple" }, marker = "(platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.10'" }, - { name = "tf2onnx", version = "1.14.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin')" }, + { name = "tf2onnx" }, ] onnxruntime = [ { name = "onnxruntime" }, @@ -5572,8 +5051,7 @@ optuna = [ { name = "optuna" }, ] quality = [ - { name = "datasets", version = "2.14.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'" }, - { name = "datasets", version = "2.20.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, + { name = "datasets" }, { name = "gitpython" }, { name = "hf-doc-builder" }, { name = "isort" }, @@ -5584,8 +5062,7 @@ ray = [ { name = "ray", extra = ["tune"] }, ] retrieval = [ - { name = "datasets", version = "2.14.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin'" }, - { name = "datasets", version = "2.20.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine != 'arm64' or platform_system != 'Darwin' or python_full_version >= '3.10'" }, + { name = "datasets" }, { name = "faiss-cpu" }, ] sagemaker = [ @@ -5617,22 +5094,16 @@ speech = [ tf = [ { name = "keras-nlp" }, { name = "onnxconverter-common" }, - { name = "tensorflow", version = "2.7.2", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "tensorflow", version = "2.15.1", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "tensorflow-text", version = "2.7.3", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "tensorflow-text", version = "2.15.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "tf2onnx", version = "1.8.4", source = { registry = "https://pypi.org/simple" }, marker = "(platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.10'" }, - { name = "tf2onnx", version = "1.14.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin')" }, + { name = "tensorflow" }, + { name = "tensorflow-text" }, + { name = "tf2onnx" }, ] tf-cpu = [ { name = "keras-nlp" }, { name = "onnxconverter-common" }, - { name = "tensorflow-cpu", version = "2.7.2", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "tensorflow-cpu", version = "2.15.1", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "tensorflow-text", version = "2.7.3", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin') or (python_full_version >= '3.10' and python_full_version < '3.13')" }, - { name = "tensorflow-text", version = "2.15.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.13'" }, - { name = "tf2onnx", version = "1.8.4", source = { registry = "https://pypi.org/simple" }, marker = "(platform_machine == 'arm64' and platform_system == 'Darwin') or python_full_version >= '3.10'" }, - { name = "tf2onnx", version = "1.14.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.10' and platform_machine != 'arm64') or (python_full_version < '3.10' and platform_system != 'Darwin')" }, + { name = "tensorflow-cpu" }, + { name = "tensorflow-text" }, + { name = "tf2onnx" }, ] tf-speech = [ { name = "kenlm" }, @@ -5955,7 +5426,7 @@ name = "triton" version = "3.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "filelock" }, + { name = "filelock", marker = "python_full_version < '3.13'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/45/27/14cc3101409b9b4b9241d2ba7deaa93535a217a211c86c4cc7151fb12181/triton-3.0.0-1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e1efef76935b2febc365bfadf74bcb65a6f959a9872e5bddf44cc9e0adce1e1a", size = 209376304 }, diff --git a/crates/uv/tests/it/snapshots/it__ecosystem__transformers-uv-lock-output.snap b/crates/uv/tests/it/snapshots/it__ecosystem__transformers-uv-lock-output.snap index 3f50a5c1cb07..a906748312d4 100644 --- a/crates/uv/tests/it/snapshots/it__ecosystem__transformers-uv-lock-output.snap +++ b/crates/uv/tests/it/snapshots/it__ecosystem__transformers-uv-lock-output.snap @@ -1,5 +1,5 @@ --- -source: crates/uv/tests/ecosystem.rs +source: crates/uv/tests/it/ecosystem.rs expression: snapshot --- success: true @@ -7,4 +7,4 @@ exit_code: 0 ----- stdout ----- ----- stderr ----- -Resolved 296 packages in [TIME] +Resolved 281 packages in [TIME] diff --git a/scripts/scenarios/generate.py b/scripts/scenarios/generate.py index af1db5ff47e4..382729fab9f8 100755 --- a/scripts/scenarios/generate.py +++ b/scripts/scenarios/generate.py @@ -152,18 +152,6 @@ def main(scenarios: list[Path], snapshot_update: bool = True): else: scenario["python_patch"] = False - # We don't yet support local versions that aren't expressed as direct dependencies. - for scenario in data["scenarios"]: - expected = scenario["expected"] - - if scenario["name"] in ( - "local-less-than-or-equal", - "local-simple", - "local-transitive-confounding", - "local-used-without-sdist", - ): - expected["satisfiable"] = False - # Split scenarios into `install`, `compile` and `lock` cases install_scenarios = [] compile_scenarios = []