GeistHaus
log in · sign up

Core metadata specifications¶

packaging.python.org
22 pages link to this URL
Simple packaging

This guide is maintained by the scientific Python community for the benefit of fellow scientists and research software engineers.

1 inbound link website en
Compiled packaging

This guide is maintained by the scientific Python community for the benefit of fellow scientists and research software engineers.

1 inbound link website en
State of standardized lock files for Python: August 2023

Since people seemed to like my June 2023 post on the state of WASI support for CPython, I thought I would do one for another one of my other long-gestating projects: coming up with a standardized lock file format for Python packaging. 💡When I say "lock file" I'm talking about

1 inbound link article en packagingPython
The pyproject.toml file

The pyproject.toml file In package mode, the only required fields are name and version (either in the project section or in the tool.poetry section). Other fields are optional. In non-package mode, the name and version fields are required if using the project section. Note Run poetry check to print warnings about deprecated fields. The project section The project section of the pyproject.toml file according to the specification of the PyPA. name The name of the package. Always required when the project section is specified

Settings

uv is an extremely fast Python package and project manager, written in Rust.

Requires-Python upper limits

Requires-Python upper limits Requires-Python was added to allow older versions of Python to be dropped by packages without breaking installation on older versions of Python. Currently (and for the last 4+ years), pip handles this quite simply; Requires-Python is a free-form SpecifierSet, and it checks to see if the current version of Python is included in the set. If not, it starts going back through a package’s history to find the most recent passing version. This was prompted by IPython droppi...

1 inbound link website en
Why it took 4 years to get a lock files specification

(This is the blog post version of my keynote from EuroPython 2025 in Prague, Czechia.) We now have a lock file format specification. That might not sound like a big deal, but for me it took 4 years of active work to get us that specification. Part education, part therapy,

2 inbound links article en Pythonpackaging
Inheritance over composition, sometimes

Last time, we built a hybrid concurrent.futures executor using inheritance. Today, we're building it again (twice!) using composition and functions only, to figure out which way is better and why. Consider this a worked example.

0 inbound links article en
Resolution

uv is an extremely fast Python package and project manager, written in Rust.