uv/crates
Charlie Marsh 69581c03c3
Enable package overrides in pip-compile (#631)
## Summary

This PR enables overrides to be passed to `pip-compile` and
`pip-install` via a new `--overrides` flag.

When overrides are provided, we effectively replace any requirements
that are overridden with the overridden versions. This is applied at all
depths of the tree.

The merge semantics are such that we replace _all_ requirements of a
package with _all_ requirements from the overrides files. So, for
example, if a package declares:

```
foo >= 1.0; python_version < '3.11'
foo < 1.0; python_version >= '3.11'
```

And the user provides an override like:
```
foo >= 2.0
```

Then _both_ of the `foo` requirements in the package will be replaced
with the override.

If instead, the user provided an override like:
```
foo >= 2.0; python_version < '3.11'
foo < 3.0; python_version >= '3.11'
```

Then we'd replace _both_ of the original `foo` requirements with both of
these overrides. (In technical terms, for each package in the
requirements file, we flat-map over its overrides.)

Closes https://github.com/astral-sh/puffin/issues/511.
2023-12-13 15:03:38 +00:00
..
bench Use Clippy lint table over Cargo config (#490) 2023-11-22 15:10:27 +00:00
distribution-filename Impl Version debug as display (#606) 2023-12-11 16:38:14 +01:00
distribution-types Add a fast-path to skip resolution when installation is complete (#613) 2023-12-12 17:43:12 +00:00
gourgeist Activate venv before source dist build (#567) 2023-12-12 15:46:37 +01:00
install-wheel-rs Use rustc-hash instead of fxhash crate (#594) 2023-12-08 20:27:49 +00:00
pep440-rs Impl Version debug as display (#606) 2023-12-11 16:38:14 +01:00
pep508-rs Consistent Cargo.toml syntax (#483) 2023-11-22 08:34:08 +00:00
platform-host Error when ldd is not in path (#506) 2023-11-28 05:55:04 +00:00
platform-tags Use rustc-hash instead of fxhash crate (#594) 2023-12-08 20:27:49 +00:00
puffin-build Remove one string clone (#626) 2023-12-12 20:56:15 +00:00
puffin-cache Download, build, and install in a single pipeline phase (#605) 2023-12-11 15:42:29 +00:00
puffin-cli Enable package overrides in pip-compile (#631) 2023-12-13 15:03:38 +00:00
puffin-client Fix incorrect unknown size marker in traces (#600) 2023-12-09 04:46:01 +00:00
puffin-dev Enable package overrides in pip-compile (#631) 2023-12-13 15:03:38 +00:00
puffin-dispatch Enable package overrides in pip-compile (#631) 2023-12-13 15:03:38 +00:00
puffin-distribution Proper unzip error type (#636) 2023-12-13 12:55:59 +00:00
puffin-fs Enable selective cache purging in puffin clean (#589) 2023-12-08 19:51:32 +00:00
puffin-git Restructure Git cache to include package name (#588) 2023-12-07 20:17:41 -05:00
puffin-installer Proper unzip error type (#636) 2023-12-13 12:55:59 +00:00
puffin-interpreter Activate venv before source dist build (#567) 2023-12-12 15:46:37 +01:00
puffin-normalize Make warnings user-facing (#628) 2023-12-12 21:24:38 -05:00
puffin-resolver Enable package overrides in pip-compile (#631) 2023-12-13 15:03:38 +00:00
puffin-traits Towards using prepare_metadata_for_build_wheel in the resolver (#616) 2023-12-12 20:45:37 +00:00
puffin-warnings Make warnings user-facing (#628) 2023-12-12 21:24:38 -05:00
puffin-workspace Use Clippy lint table over Cargo config (#490) 2023-11-22 15:10:27 +00:00
pypi-types Make warnings user-facing (#628) 2023-12-12 21:24:38 -05:00
requirements-txt Typo: editable -> editables (#637) 2023-12-13 13:24:28 +00:00
README.md Make warnings user-facing (#628) 2023-12-12 21:24:38 -05:00

Crates

bench

Functionality for benchmarking Puffin.

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.

gourgeist

A venv replacement to create virtual environments in Rust.

install-wheel-rs

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

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.

puffin-build

A PEP 517-compatible build frontend for Puffin.

puffin-cache

Functionality for caching Python packages and associated metadata.

puffin-cli

Command-line interface for the Puffin package manager.

puffin-client

Client for interacting with PyPI-compatible HTTP APIs.

puffin-dev

Development utilities for Puffin.

puffin-dispatch

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

puffin-distribution

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

puffin-fs

Utilities for interacting with the filesystem.

puffin-git

Functionality for interacting with Git repositories.

puffin-installer

Functionality for installing Python packages into a virtual environment.

puffin-interpreter

Functionality for detecting and leveraging the current Python interpreter.

puffin-normalize

Normalize package and extra names as per Python specifications.

puffin-package

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

puffin-resolver

Functionality for resolving Python packages and their dependencies.

puffin-traits

Shared traits for Puffin, to avoid circular dependencies.

pypi-types

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

puffin-warnings

User-facing warnings for Puffin.

requirements-txt

Functionality for parsing requirements.txt files.