uv/crates
konsti 889f6173cc
Unify python interpreter abstractions (#178)
Previously, we had two python interpreter metadata structs, one in
gourgeist and one in puffin. Both would spawn a subprocess to query
overlapping metadata and both would appear in the cli crate, if you
weren't careful you could even have to different base interpreters at
once. This change unifies this to one set of metadata, queried and
cached once.

Another effect of this crate is proper separation of python interpreter
and venv. A base interpreter (such as `/usr/bin/python/`, but also pyenv
and conda installed python) has a set of metadata. A venv has a root and
inherits the base python metadata except for `sys.prefix`, which unlike
`sys.base_prefix`, gets set to the venv root. From the root and the
interpreter info we can compute the paths inside the venv. We can reuse
the interpreter info of the base interpreter when creating a venv
without having to query the newly created `python`.
2023-10-25 20:11:36 +00:00
..
distribution-filename Remove vector allocation in WheelFilename (#177) 2023-10-24 01:23:14 +00:00
gourgeist Unify python interpreter abstractions (#178) 2023-10-25 20:11:36 +00:00
install-wheel-rs Unify python interpreter abstractions (#178) 2023-10-25 20:11:36 +00:00
pep440-rs Unify python interpreter abstractions (#178) 2023-10-25 20:11:36 +00:00
pep508-rs Build source distributions in the resolver (#138) 2023-10-25 20:05:13 +00:00
platform-host Use fs-err in more crates (#100) 2023-10-16 13:37:58 +00:00
platform-tags Store all distributions rather than compatible wheels (#114) 2023-10-17 17:09:31 -04:00
puffin-build Unify python interpreter abstractions (#178) 2023-10-25 20:11:36 +00:00
puffin-build-cli Unify python interpreter abstractions (#178) 2023-10-25 20:11:36 +00:00
puffin-cli Unify python interpreter abstractions (#178) 2023-10-25 20:11:36 +00:00
puffin-client Build source distributions in the resolver (#138) 2023-10-25 20:05:13 +00:00
puffin-dispatch Unify python interpreter abstractions (#178) 2023-10-25 20:11:36 +00:00
puffin-installer Unify python interpreter abstractions (#178) 2023-10-25 20:11:36 +00:00
puffin-interpreter Unify python interpreter abstractions (#178) 2023-10-25 20:11:36 +00:00
puffin-package Build source distributions in the resolver (#138) 2023-10-25 20:05:13 +00:00
puffin-resolver Unify python interpreter abstractions (#178) 2023-10-25 20:11:36 +00:00
puffin-traits Unify python interpreter abstractions (#178) 2023-10-25 20:11:36 +00:00
puffin-workspace Add a puffin remove command (#120) 2023-10-18 18:50:08 +00:00
README.md Add source distribution filename abstraction (#154) 2023-10-20 17:45:57 +02:00

Crates

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

Command-line interface for the Puffin package manager.

puffin-client

Client for interacting with PyPI-compatible HTTP APIs.

puffin-installer

Functionality for installing Python packages into a virtual environment.

puffin-interpreter

Functionality for detecting and leveraging the current Python interpreter.

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.

distribution-filename

Functionality for parsing wheel filenames as per PEP 427.