mirror of https://github.com/astral-sh/uv
Update pubgrub (#713)
Easier than i expected: We simply never construct the pubgrub error variants since we have our own main loop. The `unreachable!()`s can be removed when never is stabilized
This commit is contained in:
parent
e705267dac
commit
e60f0ec732
|
|
@ -2240,7 +2240,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "pubgrub"
|
||||
version = "0.2.1"
|
||||
source = "git+https://github.com/zanieb/pubgrub?rev=8fff95d6a233a9fa4ee5ab5429033f0f0d3ddb20#8fff95d6a233a9fa4ee5ab5429033f0f0d3ddb20"
|
||||
source = "git+https://github.com/zanieb/pubgrub?rev=f64c499f83e5798a583f9850fac28d2e7bf1dfbf#f64c499f83e5798a583f9850fac28d2e7bf1dfbf"
|
||||
dependencies = [
|
||||
"indexmap 2.1.0",
|
||||
"log",
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ once_cell = { version = "1.18.0" }
|
|||
petgraph = { version = "0.6.4" }
|
||||
platform-info = { version = "2.0.2" }
|
||||
plist = { version = "1.6.0" }
|
||||
pubgrub = { git = "https://github.com/zanieb/pubgrub", rev = "8fff95d6a233a9fa4ee5ab5429033f0f0d3ddb20" }
|
||||
pubgrub = { git = "https://github.com/zanieb/pubgrub", rev = "f64c499f83e5798a583f9850fac28d2e7bf1dfbf" }
|
||||
pyo3 = { version = "0.20.0" }
|
||||
pyo3-log = { version = "0.9.0"}
|
||||
pyproject-toml = { version = "0.8.0" }
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
use std::convert::Infallible;
|
||||
use std::fmt::Formatter;
|
||||
|
||||
use pubgrub::range::Range;
|
||||
|
|
@ -69,16 +70,6 @@ pub enum ResolveError {
|
|||
#[error(transparent)]
|
||||
NoSolution(#[from] NoSolutionError),
|
||||
|
||||
#[error("Retrieving dependencies of {package} {version} failed")]
|
||||
ErrorRetrievingDependencies {
|
||||
/// Package whose dependencies we want.
|
||||
package: Box<PubGrubPackage>,
|
||||
/// Version of the package for which we want the dependencies.
|
||||
version: Box<PubGrubVersion>,
|
||||
/// Error raised by the implementer of [DependencyProvider](crate::solver::DependencyProvider).
|
||||
source: Box<dyn std::error::Error + Send + Sync>,
|
||||
},
|
||||
|
||||
#[error("{package} {version} depends on itself")]
|
||||
SelfDependency {
|
||||
/// Package whose dependencies we want.
|
||||
|
|
@ -87,12 +78,6 @@ pub enum ResolveError {
|
|||
version: Box<PubGrubVersion>,
|
||||
},
|
||||
|
||||
#[error("Decision making failed")]
|
||||
ErrorChoosingPackageVersion(Box<dyn std::error::Error + Send + Sync>),
|
||||
|
||||
#[error("We should cancel")]
|
||||
ErrorInShouldCancel(Box<dyn std::error::Error + Send + Sync>),
|
||||
|
||||
/// Something unexpected happened.
|
||||
#[error("{0}")]
|
||||
Failure(String),
|
||||
|
|
@ -104,24 +89,19 @@ impl<T> From<futures::channel::mpsc::TrySendError<T>> for ResolveError {
|
|||
}
|
||||
}
|
||||
|
||||
impl From<pubgrub::error::PubGrubError<PubGrubPackage, Range<PubGrubVersion>>> for ResolveError {
|
||||
fn from(value: pubgrub::error::PubGrubError<PubGrubPackage, Range<PubGrubVersion>>) -> Self {
|
||||
impl From<pubgrub::error::PubGrubError<PubGrubPackage, Range<PubGrubVersion>, Infallible>>
|
||||
for ResolveError
|
||||
{
|
||||
fn from(
|
||||
value: pubgrub::error::PubGrubError<PubGrubPackage, Range<PubGrubVersion>, Infallible>,
|
||||
) -> Self {
|
||||
match value {
|
||||
pubgrub::error::PubGrubError::ErrorChoosingPackageVersion(inner) => {
|
||||
ResolveError::ErrorChoosingPackageVersion(inner)
|
||||
// These are all never type variant that can never match, but never is experimental
|
||||
pubgrub::error::PubGrubError::ErrorChoosingPackageVersion(_)
|
||||
| pubgrub::error::PubGrubError::ErrorInShouldCancel(_)
|
||||
| pubgrub::error::PubGrubError::ErrorRetrievingDependencies { .. } => {
|
||||
unreachable!()
|
||||
}
|
||||
pubgrub::error::PubGrubError::ErrorInShouldCancel(inner) => {
|
||||
ResolveError::ErrorInShouldCancel(inner)
|
||||
}
|
||||
pubgrub::error::PubGrubError::ErrorRetrievingDependencies {
|
||||
package,
|
||||
version,
|
||||
source,
|
||||
} => ResolveError::ErrorRetrievingDependencies {
|
||||
package: Box::new(package),
|
||||
version: Box::new(version),
|
||||
source,
|
||||
},
|
||||
pubgrub::error::PubGrubError::Failure(inner) => ResolveError::Failure(inner),
|
||||
pubgrub::error::PubGrubError::NoSolution(derivation_tree) => {
|
||||
ResolveError::NoSolution(NoSolutionError {
|
||||
|
|
|
|||
Loading…
Reference in New Issue