uv/crates
Zanie Blue b38edb9b7d
Allow Python requests with missing segments (#14399)
This allows `PythonDownloadRequest` which is used for parsing general
install key requests to have missing segments, which unblocks requests
like `windows-aarch64` or `cpython-linux` (whereas before those would
require `any-any-windows-aarch64` and `cpython-any-linux` respectively).
We still require strict ordering of segments.

Previously, we only allowed missing segments at the end of the key.

This uses a state machine for parsing, which is quite a bit more
complicated.

I'm a little hesitant about the possibility that this regresses error
messages and the complexity of the implementation, but `uv run -p
aarch64` seems valuable following #13724. The alternative to this would
probably be to make these explicit in various places? e.g., expose
`--python-arch`, `--python-libc`, and `--python-os`? Or make
`--python-platform` (which already exists) accept a subset of the keys?

There is a possibility of regressions here, e.g., if something matches
this parser it will not fallback to the `PythonRequest::ExecutableName`
case and we've made this parser more permissive, but I think that should
be quite rare?
2025-08-13 11:03:09 -05:00
..
uv Allow Python requests with missing segments (#14399) 2025-08-13 11:03:09 -05:00
uv-auth Make the use of Self consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-bench Add support for per-project build-time environment variables (#15095) 2025-08-06 18:01:55 -05:00
uv-build Bump version to 0.8.9 (#15229) 2025-08-11 21:07:59 -05:00
uv-build-backend Make the use of Self consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-build-frontend Enable extra build dependencies to 'match runtime' versions (#15036) 2025-08-05 19:00:44 +01:00
uv-cache Make the use of Self consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-cache-info Follow links when cache-key is a glob (#13438) 2025-07-14 11:35:34 -04:00
uv-cache-key Add DisplaySafeUrl newtype to prevent leaking of credentials by default (#13560) 2025-05-27 00:05:30 +02:00
uv-cli Add --reinstall flag to uv python upgrade (#15194) 2025-08-11 15:20:04 -05:00
uv-client Update Rust toolchain to 1.89 (#15157) 2025-08-08 13:01:52 +00:00
uv-configuration Update Rust toolchain to 1.89 (#15157) 2025-08-08 13:01:52 +00:00
uv-console Use consistent workspace inheritance (#15031) 2025-08-02 22:03:51 +02:00
uv-dev Sync latest Python releases (#15186) 2025-08-09 00:43:10 +00:00
uv-dirs Use workspace dependencies for crate dev-dependencies (#14903) 2025-07-25 13:57:49 -05:00
uv-dispatch Add support for per-project build-time environment variables (#15095) 2025-08-06 18:01:55 -05:00
uv-distribution Include build settings in cache key for registry source distribution lookups (#15225) 2025-08-11 22:14:27 +01:00
uv-distribution-filename Make the use of Self consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-distribution-types Update Rust toolchain to 1.89 (#15157) 2025-08-08 13:01:52 +00:00
uv-extract Harden ZIP streaming to reject repeated entries and other malformed ZIP files (#15136) 2025-08-07 15:31:48 +01:00
uv-fs Update Rust toolchain to 1.89 (#15157) 2025-08-08 13:01:52 +00:00
uv-git Update Rust toolchain to 1.89 (#15157) 2025-08-08 13:01:52 +00:00
uv-git-types Make the use of Self consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-globfilter additional use of Self, remove * and & where not needed (#15091) 2025-08-05 15:19:56 -05:00
uv-install-wheel Warn when two packages write to the same module (#13437) 2025-08-08 09:01:13 +00:00
uv-installer chore(🧹): cleanup env var usage (#15247) 2025-08-12 21:11:28 -05:00
uv-macros Use consistent workspace inheritance (#15031) 2025-08-02 22:03:51 +02:00
uv-metadata Harden ZIP streaming to reject repeated entries and other malformed ZIP files (#15136) 2025-08-07 15:31:48 +01:00
uv-normalize Make the use of Self consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-once-map Make the use of Self consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-options-metadata Make the use of Self consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-pep440 Update Rust toolchain to 1.89 (#15157) 2025-08-08 13:01:52 +00:00
uv-pep508 Update Rust toolchain to 1.89 (#15157) 2025-08-08 13:01:52 +00:00
uv-performance-memory-allocator Update Rust crate mimalloc to v0.1.47 (#14207) 2025-06-23 12:07:09 +02:00
uv-platform Refactor os, arch, and libc information into a shared Platform type (#15027) 2025-08-13 09:02:55 -05:00
uv-platform-tags additional use of Self, remove * and & where not needed (#15091) 2025-08-05 15:19:56 -05:00
uv-publish Respect UV_HTTP_RETRIES in uv publish (#15106) 2025-08-06 17:59:17 +02:00
uv-pypi-types Update Rust toolchain to 1.89 (#15157) 2025-08-08 13:01:52 +00:00
uv-python Allow Python requests with missing segments (#14399) 2025-08-13 11:03:09 -05:00
uv-redacted Make the use of Self consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-requirements Make the use of Self consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-requirements-txt additional use of Self, remove * and & where not needed (#15091) 2025-08-05 15:19:56 -05:00
uv-resolver Update Rust toolchain to 1.89 (#15157) 2025-08-08 13:01:52 +00:00
uv-scripts Enable extra build dependencies to 'match runtime' versions (#15036) 2025-08-05 19:00:44 +01:00
uv-settings Revert "Fix settings rendering for extra-build-dependencies" (#15228) 2025-08-11 19:37:12 -05:00
uv-shell Make the use of Self consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-small-str Update schemars 1.0.0 (#13693) 2025-06-24 21:43:31 +02:00
uv-state Make the use of Self consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-static chore(🧹): cleanup env var usage (#15247) 2025-08-12 21:11:28 -05:00
uv-tool replace manual venv removal with remove_virtualenv (#15007) 2025-08-07 15:52:57 -05:00
uv-torch Make the use of Self consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-trampoline Update trampoline to ~1.87 nightly (#15052) 2025-08-06 12:45:04 +00:00
uv-trampoline-builder Use workspace dependencies for crate dev-dependencies (#14903) 2025-07-25 13:57:49 -05:00
uv-types Update Rust toolchain to 1.89 (#15157) 2025-08-08 13:01:52 +00:00
uv-version Bump version to 0.8.9 (#15229) 2025-08-11 21:07:59 -05:00
uv-virtualenv Make the use of Self consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-warnings Better warning chain styling (#14934) 2025-07-28 16:23:39 +00:00
uv-workspace Revert "Fix settings rendering for extra-build-dependencies" (#15228) 2025-08-11 19:37:12 -05:00
README.md Link to Dependency specifiers instead of PEP 508 (#8411) 2024-10-21 14:43:38 -04:00

Crates

uv-bench

Functionality for benchmarking uv.

uv-cache-key

Generic functionality for caching paths, URLs, and other resources across platforms.

uv-distribution-filename

Parse built distribution (wheel) and source distribution (sdist) filenames to extract structured metadata.

uv-distribution-types

Abstractions for representing built distributions (wheels) and source distributions (sdists), and the sources from which they can be downloaded.

uv-install-wheel-rs

Install built distributions (wheels) into a virtual environment.

uv-once-map

A waitmap-like concurrent hash map for executing tasks exactly once.

uv-pep440-rs

Utilities for interacting with Python version numbers and specifiers.

uv-pep508-rs

Utilities for parsing and evaluating dependency specifiers, previously known as PEP 508.

uv-platform-tags

Functionality for parsing and inferring Python platform tags as per PEP 425.

uv-cli

Command-line interface for the uv package manager.

uv-build-frontend

A PEP 517-compatible build frontend for uv.

uv-cache

Functionality for caching Python packages and associated metadata.

uv-client

Client for interacting with PyPI-compatible HTTP APIs.

uv-dev

Development utilities for uv.

uv-dispatch

A centralized struct for resolving and building source distributions in isolated environments. Implements the traits defined in uv-types.

uv-distribution

Client for interacting with built distributions (wheels) and source distributions (sdists). Capable of fetching metadata, distribution contents, etc.

uv-extract

Utilities for extracting files from archives.

uv-fs

Utilities for interacting with the filesystem.

uv-git

Functionality for interacting with Git repositories.

uv-installer

Functionality for installing Python packages into a virtual environment.

uv-python

Functionality for detecting and leveraging the current Python interpreter.

uv-normalize

Normalize package and extra names as per Python specifications.

uv-requirements

Utilities for reading package requirements from pyproject.toml and requirements.txt files.

uv-resolver

Functionality for resolving Python packages and their dependencies.

uv-shell

Utilities for detecting and manipulating shell environments.

uv-types

Shared traits for uv, to avoid circular dependencies.

uv-pypi-types

General-purpose type definitions for types used in PyPI-compatible APIs.

uv-virtualenv

A venv replacement to create virtual environments in Rust.

uv-warnings

User-facing warnings for uv.

uv-workspace

Workspace abstractions for uv.

uv-requirements-txt

Functionality for parsing requirements.txt files.