Description
After pip lock
lands, this might become a better requirements.txt
alternative.
References:
- pip (25.1) will export a lockfile - ETA 2 weeks PEP 751 experimental
pip lock
command pypa/pip#13213 - packaging has landed the marker resolution (unlocks PDM, poetry, hatch) Support PEP 751 in
markers
pypa/packaging#885 - uv is tracking it as an export format Add support for PEP 751 lockfiles astral-sh/uv#12584
- poetry still thinking about it https://github.com/orgs/python-poetry/discussions/10322
- pip-tools keen Implement PEP 751 "A file format to list Python dependencies for installation reproducibility" (a.k.a. lock files) jazzband/pip-tools#2124
This most likely depends on #2786.
Making this work needs:
- Extra marker evaluation support (Support
extras
anddependency_groups
in the PEP508 env marker evaluation #2786). - Parse toml to JSON using some predefined interpreter (set with Improve the
pip.parse
API to allow for incremental building of the configuration #2747.defaults
). - Map to the output like what
parse_requirements
is returning for easy plumbing. - Call the API for parsing
py.lock
something likepip.from_lock
.