mirror of
https://github.com/astral-sh/uv.git
synced 2025-08-03 18:38:21 +00:00
Update pubgrub (#5649)
We improved the API structure in pubgrub, and also update to generally keep up with upstream.
This commit is contained in:
parent
2574f5b3fd
commit
981661c4af
13 changed files with 19 additions and 25 deletions
2
Cargo.lock
generated
2
Cargo.lock
generated
|
@ -2706,7 +2706,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "pubgrub"
|
||||
version = "0.2.1"
|
||||
source = "git+https://github.com/astral-sh/pubgrub?rev=3f0ba760951ab0deeac874b98bb18fc90103fcf7#3f0ba760951ab0deeac874b98bb18fc90103fcf7"
|
||||
source = "git+https://github.com/astral-sh/pubgrub?rev=2fac39371a47e7cb821e510aaa4de25405413d29#2fac39371a47e7cb821e510aaa4de25405413d29"
|
||||
dependencies = [
|
||||
"indexmap",
|
||||
"log",
|
||||
|
|
|
@ -109,7 +109,7 @@ pathdiff = { version = "0.2.1" }
|
|||
petgraph = { version = "0.6.4" }
|
||||
platform-info = { version = "2.0.2" }
|
||||
proc-macro2 = { version = "1.0.86" }
|
||||
pubgrub = { git = "https://github.com/astral-sh/pubgrub", rev = "3f0ba760951ab0deeac874b98bb18fc90103fcf7" }
|
||||
pubgrub = { git = "https://github.com/astral-sh/pubgrub", rev = "2fac39371a47e7cb821e510aaa4de25405413d29" }
|
||||
pyo3 = { version = "0.21.0" }
|
||||
pyo3-log = { version = "0.10.0" }
|
||||
quote = { version = "1.0.36" }
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
use itertools::Itertools;
|
||||
use pubgrub::range::Range;
|
||||
use pubgrub::Range;
|
||||
use std::fmt::{Display, Formatter};
|
||||
use tracing::debug;
|
||||
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
use std::convert::Infallible;
|
||||
|
||||
use pubgrub::range::Range;
|
||||
use pubgrub::solver::{Dependencies, DependencyProvider};
|
||||
use pubgrub::{Dependencies, DependencyProvider, Range};
|
||||
|
||||
use pep440_rs::Version;
|
||||
|
||||
|
|
|
@ -2,8 +2,7 @@ use std::collections::{BTreeMap, BTreeSet};
|
|||
use std::fmt::Formatter;
|
||||
use std::sync::Arc;
|
||||
|
||||
use pubgrub::range::Range;
|
||||
use pubgrub::report::{DefaultStringReporter, DerivationTree, External, Reporter};
|
||||
use pubgrub::{DefaultStringReporter, DerivationTree, External, Range, Reporter};
|
||||
use rustc_hash::FxHashMap;
|
||||
|
||||
use distribution_types::{BuiltDist, IndexLocations, InstalledDist, SourceDist};
|
||||
|
@ -117,7 +116,7 @@ impl<T> From<tokio::sync::mpsc::error::SendError<T>> for ResolveError {
|
|||
/// A wrapper around [`pubgrub::error::NoSolutionError`] that displays a resolution failure report.
|
||||
#[derive(Debug)]
|
||||
pub struct NoSolutionError {
|
||||
error: pubgrub::error::NoSolutionError<UvDependencyProvider>,
|
||||
error: pubgrub::NoSolutionError<UvDependencyProvider>,
|
||||
available_versions: FxHashMap<PubGrubPackage, BTreeSet<Version>>,
|
||||
selector: CandidateSelector,
|
||||
python_requirement: PythonRequirement,
|
||||
|
@ -141,7 +140,7 @@ impl NoSolutionError {
|
|||
}
|
||||
|
||||
pub(crate) fn new(
|
||||
error: pubgrub::error::NoSolutionError<UvDependencyProvider>,
|
||||
error: pubgrub::NoSolutionError<UvDependencyProvider>,
|
||||
available_versions: FxHashMap<PubGrubPackage, BTreeSet<Version>>,
|
||||
selector: CandidateSelector,
|
||||
python_requirement: PythonRequirement,
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
use std::ops::Bound::{self, *};
|
||||
use std::ops::RangeBounds;
|
||||
|
||||
use pubgrub::range::{Range as PubGrubRange, Range};
|
||||
use pubgrub::Range as PubGrubRange;
|
||||
use rustc_hash::FxHashMap;
|
||||
|
||||
use pep440_rs::{Version, VersionSpecifier};
|
||||
|
@ -125,7 +125,7 @@ fn string_is_disjoint(this: &MarkerExpression, other: &MarkerExpression) -> bool
|
|||
true
|
||||
}
|
||||
|
||||
pub(crate) fn python_range(expr: &MarkerExpression) -> Option<Range<Version>> {
|
||||
pub(crate) fn python_range(expr: &MarkerExpression) -> Option<PubGrubRange<Version>> {
|
||||
match expr {
|
||||
MarkerExpression::Version {
|
||||
key: MarkerValueVersion::PythonFullVersion,
|
||||
|
@ -331,7 +331,7 @@ pub(crate) fn normalize_all(
|
|||
MarkerTree::Expression(expr)
|
||||
if bound.is_some_and(|bound| {
|
||||
python_range(&expr).is_some_and(|supported_range| {
|
||||
Range::from(bound.clone()).subset_of(&supported_range)
|
||||
PubGrubRange::from(bound.clone()).subset_of(&supported_range)
|
||||
})
|
||||
}) =>
|
||||
{
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
use std::iter;
|
||||
|
||||
use itertools::Itertools;
|
||||
use pubgrub::range::Range;
|
||||
use pubgrub::Range;
|
||||
use tracing::warn;
|
||||
|
||||
use pep440_rs::{Version, VersionSpecifiers};
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
use std::cmp::Reverse;
|
||||
|
||||
use pubgrub::range::Range;
|
||||
use pubgrub::Range;
|
||||
use rustc_hash::FxHashMap;
|
||||
|
||||
use crate::fork_urls::ForkUrls;
|
||||
|
|
|
@ -6,10 +6,7 @@ use std::ops::Bound;
|
|||
use derivative::Derivative;
|
||||
use indexmap::IndexSet;
|
||||
use owo_colors::OwoColorize;
|
||||
use pubgrub::range::Range;
|
||||
use pubgrub::report::{DerivationTree, Derived, External, ReportFormatter};
|
||||
use pubgrub::term::Term;
|
||||
use pubgrub::type_aliases::Map;
|
||||
use pubgrub::{DerivationTree, Derived, External, Map, Range, ReportFormatter, Term};
|
||||
use rustc_hash::FxHashMap;
|
||||
|
||||
use distribution_types::IndexLocations;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
use std::ops::Bound;
|
||||
|
||||
use itertools::Itertools;
|
||||
use pubgrub::range::Range;
|
||||
use pubgrub::Range;
|
||||
use thiserror::Error;
|
||||
|
||||
use pep440_rs::{Operator, PreRelease, Version, VersionSpecifier, VersionSpecifiers};
|
||||
|
|
|
@ -3,7 +3,7 @@ use std::collections::Bound;
|
|||
use std::ops::Deref;
|
||||
|
||||
use itertools::Itertools;
|
||||
use pubgrub::range::Range;
|
||||
use pubgrub::Range;
|
||||
|
||||
use distribution_filename::WheelFilename;
|
||||
use pep440_rs::{Operator, Version, VersionSpecifier, VersionSpecifiers};
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
use std::cmp::min;
|
||||
|
||||
use itertools::Itertools;
|
||||
use pubgrub::range::Range;
|
||||
use pubgrub::Range;
|
||||
use rustc_hash::FxHashMap;
|
||||
use tokio::sync::mpsc::Sender;
|
||||
use tracing::{debug, trace};
|
||||
|
|
|
@ -13,8 +13,7 @@ use dashmap::DashMap;
|
|||
use either::Either;
|
||||
use futures::{FutureExt, StreamExt};
|
||||
use itertools::Itertools;
|
||||
use pubgrub::range::Range;
|
||||
use pubgrub::solver::{Incompatibility, State};
|
||||
use pubgrub::{Incompatibility, Range, State};
|
||||
use rustc_hash::{FxHashMap, FxHashSet};
|
||||
use tokio::sync::mpsc::{self, Receiver, Sender};
|
||||
use tokio::sync::oneshot;
|
||||
|
@ -1885,7 +1884,7 @@ impl<InstalledPackages: InstalledPackagesProvider> ResolverState<InstalledPackag
|
|||
|
||||
fn convert_no_solution_err(
|
||||
&self,
|
||||
mut err: pubgrub::error::NoSolutionError<UvDependencyProvider>,
|
||||
mut err: pubgrub::NoSolutionError<UvDependencyProvider>,
|
||||
fork_urls: ForkUrls,
|
||||
markers: ResolverMarkers,
|
||||
visited: &FxHashSet<PackageName>,
|
||||
|
@ -2245,7 +2244,7 @@ impl ForkState {
|
|||
let mut edges: FxHashSet<ResolutionDependencyEdge> = FxHashSet::default();
|
||||
for (package, self_version) in &solution {
|
||||
for id in &self.pubgrub.incompatibilities[package] {
|
||||
let pubgrub::solver::Kind::FromDependencyOf(
|
||||
let pubgrub::Kind::FromDependencyOf(
|
||||
ref self_package,
|
||||
ref self_range,
|
||||
ref dependency_package,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue