Add PyPy finder (#5337)

## Summary

This PR adds PyPy finder and adds PyPy to uv managed Python versions.

## Test Plan

```console
$ cargo run -- python install
```
This commit is contained in:
Jo 2024-07-24 03:58:04 +08:00 committed by GitHub
parent 96b24345eb
commit 7ddf67a72b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 2948 additions and 23 deletions

View file

@ -24,12 +24,12 @@ Many Python version request formats are supported:
- `<implementation><version-specifier>` e.g. `cpython>=3.12,<3.13`
- `<implementation>-<version>-<os>-<arch>-<libc>` e.g. `cpython-3.12.3-macos-aarch64-none`
At this time, only CPython downloads are supported. However, PyPy support is planned.
## Installing a Python version
Sometimes it is preferable to install the Python versions before they are needed.
uv bundles a list of downloadable CPython and PyPy distributions for macOS, Linux, and Windows.
To install a Python version at a specific version:
```bash
@ -122,8 +122,10 @@ If a specific Python version is requested, e.g. `--python 3.7`, additional execu
## Python distributions
Python does not publish official distributable binaries, uv uses third-party standalone distributions from the [`python-build-standalone`](https://github.com/indygreg/python-build-standalone) project. The project is partially maintained by the uv maintainers and is used by many other Python projects.
Python does not publish official distributable CPython binaries, uv uses third-party standalone distributions from the [`python-build-standalone`](https://github.com/indygreg/python-build-standalone) project. The project is partially maintained by the uv maintainers and is used by many other Python projects.
The Python distributions are self-contained and highly-portable. Additionally, these distributions have various build-time optimizations enabled to ensure they are performant.
These distributions have some behavior quirks, generally as a consequence of portability. See the [`python-build-standalone` quirks](https://gregoryszorc.com/docs/python-build-standalone/main/quirks.html) documentation for details.
PyPy distributions are provided by the PyPy project.