uv/crates/uv-client
konsti 22f80ca00d
Retry streaming Python and bin download errors (#15567)
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>
2025-08-31 15:07:22 +00:00
..
src Retry streaming Python and bin download errors (#15567) 2025-08-31 15:07:22 +00:00
tests/it Use a global `BaseClientBuilder` (#15548) 2025-08-29 13:30:51 -05:00
Cargo.toml Use workspace dependencies for crate dev-dependencies (#14903) 2025-07-25 13:57:49 -05:00
README.md Rename to `uv` (#1302) 2024-02-15 11:19:46 -06:00

README.md

pypi-client

A general-use client for interacting with PyPI.

Loosely modeled after Orogene's oro-client.