uv/crates
Chan Kang 7cd98d2499
Implement --emit-index-annotation to annotate source index for each package (#2926)
## Summary
resolves https://github.com/astral-sh/uv/issues/2852

## Test Plan
add a couple of tests:
- one covering the simplest case with all packages pulled from a single
index.
- another where packages are pull from two distinct indices.

tested manually as well:
```
$ (echo 'pandas'; echo 'torch') | UV_EXTRA_INDEX_URL='https://download.pytorch.org/whl/cpu' cargo run pip compile - --include-indices 
    Finished dev [unoptimized + debuginfo] target(s) in 0.60s
     Running `target/debug/uv pip compile - --include-indices`
Resolved 15 packages in 686ms
# This file was autogenerated by uv via the following command:
#    uv pip compile - --include-indices
filelock==3.9.0
    # via torch
    # from https://download.pytorch.org/whl/cpu
fsspec==2023.4.0
    # via torch
    # from https://download.pytorch.org/whl/cpu
jinja2==3.1.2
    # via torch
    # from https://download.pytorch.org/whl/cpu
markupsafe==2.1.3
    # via jinja2
    # from https://download.pytorch.org/whl/cpu
mpmath==1.3.0
    # via sympy
    # from https://download.pytorch.org/whl/cpu
networkx==3.2.1
    # via torch
    # from https://download.pytorch.org/whl/cpu
numpy==1.26.3
    # via pandas
    # from https://download.pytorch.org/whl/cpu
pandas==2.2.1
    # from https://pypi.org/simple
python-dateutil==2.9.0.post0
    # via pandas
    # from https://pypi.org/simple
pytz==2024.1
    # via pandas
    # from https://pypi.org/simple
six==1.16.0
    # via python-dateutil
    # from https://pypi.org/simple
sympy==1.12
    # via torch
    # from https://download.pytorch.org/whl/cpu
torch==2.2.2
    # from https://download.pytorch.org/whl/cpu
typing-extensions==4.8.0
    # via torch
    # from https://download.pytorch.org/whl/cpu
tzdata==2024.1
    # via pandas
    # from https://pypi.org/simple
```
2024-04-10 16:05:58 +00:00
..
bench Avoid repeating paths of workspace packages (#2573) 2024-03-20 16:16:02 -04:00
cache-key Preserve .git suffixes and casing in Git dependencies (#2789) 2024-04-03 00:24:29 +00:00
distribution-filename Update miette v7, pubgrub and small Cargo.toml cleanup (#2610) 2024-03-22 10:42:48 +00:00
distribution-types Implement --emit-index-annotation to annotate source index for each package (#2926) 2024-04-10 16:05:58 +00:00
install-wheel-rs Use Resolver in pip sync (#2696) 2024-03-27 17:36:38 -04:00
once-map Remove unused deps (#1273) 2024-02-11 18:53:58 +00:00
pep440-rs Update pubgrub to use a dependency provider (#2648) 2024-03-25 15:51:31 +01:00
pep508-rs Allow prereleases, locals, and URLs in non-editable path requirements (#2671) 2024-03-27 22:17:09 +00:00
platform-tags Drop macosx_10_0 from compatible wheel tags on aarch64 (#2496) 2024-03-18 14:52:54 +00:00
pypi-types Replace PyPI-internal Hashes representation with flat vector (#2925) 2024-04-09 16:56:16 +00:00
requirements-txt Split configuration options out of uv-types (#2924) 2024-04-09 11:35:53 -05:00
uv Implement --emit-index-annotation to annotate source index for each package (#2926) 2024-04-10 16:05:58 +00:00
uv-auth Upgrade reqwest to v0.12.3 (#2817) 2024-04-10 11:20:44 -04:00
uv-build Allow profiling tests with tracing instrumentation (#2957) 2024-04-10 10:15:27 +00:00
uv-cache Replace PyPI-internal Hashes representation with flat vector (#2925) 2024-04-09 16:56:16 +00:00
uv-client Upgrade reqwest to v0.12.3 (#2817) 2024-04-10 11:20:44 -04:00
uv-configuration Split configuration options out of uv-types (#2924) 2024-04-09 11:35:53 -05:00
uv-dev Allow profiling tests with tracing instrumentation (#2957) 2024-04-10 10:15:27 +00:00
uv-dispatch Remove rust 1.75 workaround (#2959) 2024-04-10 13:26:18 +00:00
uv-distribution Allow profiling tests with tracing instrumentation (#2957) 2024-04-10 10:15:27 +00:00
uv-extract Add extract support for zstd (#2861) 2024-04-08 15:34:08 -05:00
uv-fs Fix windows lock race: Lock exclusive after all try lock errors (#2800) 2024-04-03 16:02:40 +02:00
uv-git Respect Git tags and branches that look like short commits (#2795) 2024-04-03 22:05:54 -04:00
uv-installer Store common fields on BuiltWheelIndex struct (#2939) 2024-04-09 13:30:02 -04:00
uv-interpreter fixed uv can't create .venv for cpython-x86 on Windows (#2707) 2024-04-02 20:45:53 -05:00
uv-normalize Update miette v7, pubgrub and small Cargo.toml cleanup (#2610) 2024-03-22 10:42:48 +00:00
uv-requirements Split configuration options out of uv-types (#2924) 2024-04-09 11:35:53 -05:00
uv-resolver Implement --emit-index-annotation to annotate source index for each package (#2926) 2024-04-10 16:05:58 +00:00
uv-trampoline Use c-string literals and update trampolines (#2590) 2024-03-21 15:36:00 +00:00
uv-types Split configuration options out of uv-types (#2924) 2024-04-09 11:35:53 -05:00
uv-version Bump version to v0.1.31 (#2944) 2024-04-09 19:20:43 +00:00
uv-virtualenv Avoid repeating paths of workspace packages (#2573) 2024-03-20 16:16:02 -04:00
uv-warnings Rename to uv (#1302) 2024-02-15 11:19:46 -06:00
README.md Rename uv-traits and split into separate modules (#2674) 2024-03-26 15:39:43 -05:00

Crates

bench

Functionality for benchmarking uv.

cache-key

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

distribution-filename

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

distribution-types

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

install-wheel-rs

Install built distributions (wheels) into a virtual environment.]

once-map

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

pep440-rs

Utilities for interacting with Python version numbers and specifiers.

pep508-rs

Utilities for interacting with PEP 508 dependency specifiers.

platform-host

Functionality for detecting the current platform (operating system, architecture, etc.).

platform-tags

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

uv

Command-line interface for the uv package manager.

uv-build

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-interpreter

Functionality for detecting and leveraging the current Python interpreter.

uv-normalize

Normalize package and extra names as per Python specifications.

uv-package

Types and functionality for working with Python packages, e.g., parsing wheel files.

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-types

Shared traits for uv, to avoid circular dependencies.

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.

requirements-txt

Functionality for parsing requirements.txt files.