uv/crates/uv-client
konsti 4a1813f228
Extract IO errors from h2 for streaming retries of Connection Reset (#15675)
Our streaming retries were missing connection reset errors as h2 was
shadowing IO errors (https://github.com/hyperium/h2/issues/862).

**Test plan**

In one terminal:

```
cargo python uninstall 3.12 && cargo run python install 3.12 -vv
```

In another:

```
sudo tcpkill -i wlp2s0 port 443
```

Output:

```
error: Failed to install cpython-3.12.11-linux-x86_64-gnu
  Caused by: Request failed after 3 retries
  Caused by: Failed to download https://github.com/astral-sh/python-build-standalone/releases/download/20250902/cpython-3.12.11%2B20250902-x86_64-unknown-linux-gnu-install_only_stripped.tar.gz
  Caused by: error sending request for url (https://github.com/astral-sh/python-build-standalone/releases/download/20250902/cpython-3.12.11%2B20250902-x86_64-unknown-linux-gnu-install_only_stripped.tar.gz)
  Caused by: client error (SendRequest)
  Caused by: connection error
  Caused by: connection reset
```

I don't know how to test that from inside Rust.

Fix #14171 (again, hopefully)
2025-09-04 14:45:00 +02:00
..
src Extract IO errors from h2 for streaming retries of Connection Reset (#15675) 2025-09-04 14:45:00 +02:00
tests/it Use a global `BaseClientBuilder` (#15548) 2025-08-29 13:30:51 -05:00
Cargo.toml Extract IO errors from h2 for streaming retries of Connection Reset (#15675) 2025-09-04 14:45:00 +02: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.