uv/crates/pypi-types/src
konsti 9806901a16
Consolidate wheel caches (#524)
After this change, two wheel caches remain: `built-wheels-v0` and
`wheels-v0`, docs screenshots below. Each contains both the wheel
metadata, cache policy and zip or unzipped wheels under the same name.

The zipped/unzipped strategy is as follows: In `pip-compile`, when we
build a wheel, we store it zipped. When `pip-sync` or a source dist
build in `pip-compile` need to install the wheel, we unzip it, remove
the file and replace it with the unzipped wheel.

This removes `WheelCache` and `UrlIndex` in favor of `Cache` plus
`WheelCache`. The non-built wheel cache now considers index urls and the
url for url wheels.

I'm unsure if we need the `Unzipper` type, this could just be a
function.

I move `no_index` into `IndexUrls` and started using `IndexUrl` up to
the clap level.

I left a number of TODOs in the code, namely performing the actual
invalidation of unzipped wheels and making the `InstallPlan` understand
cache invalidation (i.e. uninstall wheels when their remote changed).


![image](https://github.com/astral-sh/puffin/assets/6826232/c4d45979-485b-4954-848d-fd3347ee2510)
2023-12-01 20:16:33 +00:00
..
direct_url.rs Add support for path dependencies (#471) 2023-11-21 11:49:42 +00:00
index_url.rs Consolidate wheel caches (#524) 2023-12-01 20:16:33 +00:00
lenient_requirement.rs Allow applying multiple fixups for version specifiers (#486) 2023-11-22 10:26:12 +00:00
lib.rs Consolidate wheel caches (#524) 2023-12-01 20:16:33 +00:00
metadata.rs Use a sparse Metadata 2.1 representation (#488) 2023-11-22 13:25:35 +00:00
simple_json.rs Option to resolve at a fixed timestamp with `pip-compile --exclude-newer YYYY-MM-DD` (#434) 2023-11-16 19:46:17 +00:00