A package for implementing various Python packaging standards.

packaging, Simple, Repository, API, PEP, 503, 592, 658, 691
pip install mousebender==2023.2



Produce/consume dependency lock files for Python

Goals for this project

This project hopes to (eventually) provide a way to create reproducible installations for a virtual environment from a lock file -- or a version-pinned dependency list if "lock file" means flock to you -- derived from a pyproject.toml file. That will require defining a lock file format for wheel files as well as being able to perform installations based on that lock file. The ultimate goal is for that lock file format to become a standard (see PEP 665 which was an initial attempt at this).

Or put another way, this project wants to work towards a standard for what pip-tools and pip requirements files

To achieve this goal, this project will need to be able to:

  • Know what wheel files are available on an index server (mousebender.simple)
  • Read the metadata from a wheel file (in packaging.metadata)
  • Resolve what wheel files are required to meet the requirements specified in pyproject.toml
  • Produce a lock file of wheel files for a platform
  • Consume a lock file for the platform to install the specified wheel files

Where does the name come from?

The customer from Monty Python's cheese shop sketch is named "Mr. Mousebender". And in case you didn't know, the original name of PyPI was the Cheeseshop after the Monty Python sketch (see PyPI's 404 page for a link to the sketch).