Skip to content

Commit

Permalink
Update pubgrub (#5649)
Browse files Browse the repository at this point in the history
We improved the API structure in pubgrub, and also update to generally
keep up with upstream.
  • Loading branch information
konstin committed Jul 31, 2024
1 parent 2574f5b commit 981661c
Show file tree
Hide file tree
Showing 13 changed files with 19 additions and 25 deletions.
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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" }
Expand Down
2 changes: 1 addition & 1 deletion crates/uv-resolver/src/candidate_selector.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use itertools::Itertools;
use pubgrub::range::Range;
use pubgrub::Range;
use std::fmt::{Display, Formatter};
use tracing::debug;

Expand Down
3 changes: 1 addition & 2 deletions crates/uv-resolver/src/dependency_provider.rs
Original file line number Diff line number Diff line change
@@ -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;

Expand Down
7 changes: 3 additions & 4 deletions crates/uv-resolver/src/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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};
Expand Down Expand Up @@ -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,
Expand All @@ -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,
Expand Down
6 changes: 3 additions & 3 deletions crates/uv-resolver/src/marker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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};
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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)
})
}) =>
{
Expand Down
2 changes: 1 addition & 1 deletion crates/uv-resolver/src/pubgrub/dependencies.rs
Original file line number Diff line number Diff line change
@@ -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};
Expand Down
2 changes: 1 addition & 1 deletion crates/uv-resolver/src/pubgrub/priority.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use std::cmp::Reverse;

use pubgrub::range::Range;
use pubgrub::Range;
use rustc_hash::FxHashMap;

use crate::fork_urls::ForkUrls;
Expand Down
5 changes: 1 addition & 4 deletions crates/uv-resolver/src/pubgrub/report.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion crates/uv-resolver/src/pubgrub/specifier.rs
Original file line number Diff line number Diff line change
@@ -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};
Expand Down
2 changes: 1 addition & 1 deletion crates/uv-resolver/src/requires_python.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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};
Expand Down
2 changes: 1 addition & 1 deletion crates/uv-resolver/src/resolver/batch_prefetch.rs
Original file line number Diff line number Diff line change
@@ -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};
Expand Down
7 changes: 3 additions & 4 deletions crates/uv-resolver/src/resolver/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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>,
Expand Down Expand Up @@ -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,
Expand Down

0 comments on commit 981661c

Please sign in to comment.