From 11324646cbe88fcd85cce267b428edaffd116f34 Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Sat, 1 Jun 2024 16:11:23 -0400 Subject: [PATCH] Remove some `anyhow` usages (#3962) --- crates/distribution-types/src/lib.rs | 1 - crates/distribution-types/src/traits.rs | 2 -- crates/uv-client/tests/user_agent_version.rs | 3 ++- crates/uv-distribution/src/source/mod.rs | 1 - crates/uv-git/src/resolver.rs | 1 - crates/uv-installer/src/uninstall.rs | 2 -- crates/uv-requirements/src/unnamed.rs | 17 ++++++++++++++--- crates/uv-resolver/src/pubgrub/specifier.rs | 1 - crates/uv-resolver/src/resolver/mod.rs | 1 - crates/uv-resolver/src/resolver/provider.rs | 2 -- crates/uv/src/commands/pip/operations.rs | 3 +++ 11 files changed, 19 insertions(+), 15 deletions(-) diff --git a/crates/distribution-types/src/lib.rs b/crates/distribution-types/src/lib.rs index e259370fd..eea24da61 100644 --- a/crates/distribution-types/src/lib.rs +++ b/crates/distribution-types/src/lib.rs @@ -36,7 +36,6 @@ use std::borrow::Cow; use std::path::{Path, PathBuf}; use std::str::FromStr; -use anyhow::Result; use url::Url; use distribution_filename::WheelFilename; diff --git a/crates/distribution-types/src/traits.rs b/crates/distribution-types/src/traits.rs index badef4d0d..871530e33 100644 --- a/crates/distribution-types/src/traits.rs +++ b/crates/distribution-types/src/traits.rs @@ -1,7 +1,5 @@ use std::borrow::Cow; -use anyhow::Result; - use pep508_rs::VerbatimUrl; use uv_normalize::PackageName; diff --git a/crates/uv-client/tests/user_agent_version.rs b/crates/uv-client/tests/user_agent_version.rs index 1e63a5555..d327f3138 100644 --- a/crates/uv-client/tests/user_agent_version.rs +++ b/crates/uv-client/tests/user_agent_version.rs @@ -8,9 +8,10 @@ use hyper::service::service_fn; use hyper::{Request, Response}; use hyper_util::rt::TokioIo; use insta::{assert_json_snapshot, assert_snapshot, with_settings}; +use tokio::net::TcpListener; + use pep508_rs::{MarkerEnvironment, MarkerEnvironmentBuilder}; use platform_tags::{Arch, Os, Platform}; -use tokio::net::TcpListener; use uv_cache::Cache; use uv_client::LineHaul; use uv_client::RegistryClientBuilder; diff --git a/crates/uv-distribution/src/source/mod.rs b/crates/uv-distribution/src/source/mod.rs index e95eee3e8..74331cf80 100644 --- a/crates/uv-distribution/src/source/mod.rs +++ b/crates/uv-distribution/src/source/mod.rs @@ -5,7 +5,6 @@ use std::path::{Path, PathBuf}; use std::str::FromStr; use std::sync::Arc; -use anyhow::Result; use fs_err::tokio as fs; use futures::{FutureExt, TryStreamExt}; use reqwest::Response; diff --git a/crates/uv-git/src/resolver.rs b/crates/uv-git/src/resolver.rs index 8def7305a..a7c1b5c00 100644 --- a/crates/uv-git/src/resolver.rs +++ b/crates/uv-git/src/resolver.rs @@ -1,7 +1,6 @@ use std::path::PathBuf; use std::sync::Arc; -use anyhow::Result; use tracing::debug; use cache_key::RepositoryUrl; diff --git a/crates/uv-installer/src/uninstall.rs b/crates/uv-installer/src/uninstall.rs index a6f239de4..7386ff310 100644 --- a/crates/uv-installer/src/uninstall.rs +++ b/crates/uv-installer/src/uninstall.rs @@ -1,5 +1,3 @@ -use anyhow::Result; - use distribution_types::InstalledDist; /// Uninstall a package from the specified Python environment. diff --git a/crates/uv-requirements/src/unnamed.rs b/crates/uv-requirements/src/unnamed.rs index 8e5aae721..16d16b649 100644 --- a/crates/uv-requirements/src/unnamed.rs +++ b/crates/uv-requirements/src/unnamed.rs @@ -3,7 +3,6 @@ use std::path::Path; use std::str::FromStr; use std::sync::Arc; -use anyhow::Result; use configparser::ini::Ini; use futures::{stream::FuturesOrdered, TryStreamExt}; use serde::Deserialize; @@ -22,6 +21,18 @@ use uv_normalize::PackageName; use uv_resolver::{InMemoryIndex, MetadataResponse}; use uv_types::{BuildContext, HashStrategy}; +#[derive(Debug, thiserror::Error)] +pub enum NamedRequirementsError { + #[error(transparent)] + Distribution(#[from] uv_distribution::Error), + + #[error(transparent)] + DistributionTypes(#[from] distribution_types::Error), + + #[error(transparent)] + WheelFilename(#[from] distribution_filename::WheelFilenameError), +} + /// Like [`RequirementsSpecification`], but with concrete names for all requirements. pub struct NamedRequirementsResolver<'a, Context: BuildContext> { /// The requirements for the project. @@ -60,7 +71,7 @@ impl<'a, Context: BuildContext> NamedRequirementsResolver<'a, Context> { } /// Resolve any unnamed requirements in the specification. - pub async fn resolve(self) -> Result> { + pub async fn resolve(self) -> Result, NamedRequirementsError> { let Self { requirements, hasher, @@ -88,7 +99,7 @@ impl<'a, Context: BuildContext> NamedRequirementsResolver<'a, Context> { hasher: &HashStrategy, index: &InMemoryIndex, database: &DistributionDatabase<'a, Context>, - ) -> Result> { + ) -> Result, NamedRequirementsError> { // If the requirement is a wheel, extract the package name from the wheel filename. // // Ex) `anyio-4.3.0-py3-none-any.whl` diff --git a/crates/uv-resolver/src/pubgrub/specifier.rs b/crates/uv-resolver/src/pubgrub/specifier.rs index 623b32b94..7939beb45 100644 --- a/crates/uv-resolver/src/pubgrub/specifier.rs +++ b/crates/uv-resolver/src/pubgrub/specifier.rs @@ -1,4 +1,3 @@ -use anyhow::Result; use pubgrub::range::Range; use pep440_rs::{Operator, PreRelease, Version, VersionSpecifier}; diff --git a/crates/uv-resolver/src/resolver/mod.rs b/crates/uv-resolver/src/resolver/mod.rs index cf2132c5b..d2b0e31cb 100644 --- a/crates/uv-resolver/src/resolver/mod.rs +++ b/crates/uv-resolver/src/resolver/mod.rs @@ -6,7 +6,6 @@ use std::ops::Deref; use std::sync::Arc; use std::thread; -use anyhow::Result; use dashmap::DashMap; use futures::{FutureExt, StreamExt, TryFutureExt}; use itertools::Itertools; diff --git a/crates/uv-resolver/src/resolver/provider.rs b/crates/uv-resolver/src/resolver/provider.rs index c9c4a3e98..33f96d847 100644 --- a/crates/uv-resolver/src/resolver/provider.rs +++ b/crates/uv-resolver/src/resolver/provider.rs @@ -1,7 +1,5 @@ use std::future::Future; -use anyhow::Result; - use distribution_types::{Dist, IndexLocations}; use platform_tags::Tags; use uv_configuration::{NoBinary, NoBuild}; diff --git a/crates/uv/src/commands/pip/operations.rs b/crates/uv/src/commands/pip/operations.rs index 89b12f3e2..247d6abd7 100644 --- a/crates/uv/src/commands/pip/operations.rs +++ b/crates/uv/src/commands/pip/operations.rs @@ -725,6 +725,9 @@ pub(crate) enum Error { #[error(transparent)] Lookahead(#[from] uv_requirements::LookaheadError), + #[error(transparent)] + Named(#[from] uv_requirements::NamedRequirementsError), + #[error(transparent)] Anyhow(#[from] anyhow::Error), }