22f80ca00d
When there is an error during the streaming download and unpack for Python interpreter and bin installs, we would previously fail, causing a lot of CI flakes on GitHub Actions. The problem was that the error is not one of the extended IO errors we were previously handling, but a regular reqwest error, nested below layers of errors of other crates processing the stream, including some IO errors. We now handle nested reqwest errors, too. This surfaced another problem: Our manual retry loop couldn't inform the retry middleware that it already performed the limit of retries, and that the middleware should not retry anymore. While too many retries are more a problem for debugging than for the user, this causes confusing error output. To work around this, we disable the retries in the client and handle all retry errors in our loop. Fixes https://github.com/astral-sh/uv/issues/14171 Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
28 lines
927 B
Rust
28 lines
927 B
Rust
pub use base_client::{
|
|
AuthIntegration, BaseClient, BaseClientBuilder, DEFAULT_RETRIES, ExtraMiddleware,
|
|
RedirectClientWithMiddleware, RequestBuilder, RetryParsingError, UvRetryableStrategy,
|
|
is_transient_network_error, retries_from_env,
|
|
};
|
|
pub use cached_client::{CacheControl, CachedClient, CachedClientError, DataWithCachePolicy};
|
|
pub use error::{Error, ErrorKind, WrappedReqwestError};
|
|
pub use flat_index::{FlatIndexClient, FlatIndexEntries, FlatIndexEntry, FlatIndexError};
|
|
pub use linehaul::LineHaul;
|
|
pub use registry_client::{
|
|
Connectivity, MetadataFormat, RegistryClient, RegistryClientBuilder, SimpleMetadata,
|
|
SimpleMetadatum, VersionFiles,
|
|
};
|
|
pub use rkyvutil::{Deserializer, OwnedArchive, Serializer, Validator};
|
|
|
|
mod base_client;
|
|
mod cached_client;
|
|
mod error;
|
|
mod flat_index;
|
|
mod html;
|
|
mod httpcache;
|
|
mod linehaul;
|
|
mod middleware;
|
|
mod registry_client;
|
|
mod remote_metadata;
|
|
mod rkyvutil;
|
|
mod tls;
|