brettcannon/mousebender

Create reproducible installations for a virtual environment from a lock file

HTML

85

175 commits

updated Sep 25, 2026

See the code

README

mousebender

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 do.

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).

Project health

Overall

5.7/10

Maintained

8/10

Code review

0/10
OpenSSF Scorecard

Latest release

2025.1.0 · Aug 22, 2025

Releases this year

0

Significant stargazers

Seth Larson

946 followers · starred Dec 2023

Anthony Shaw

2,354 followers · starred May 2020

adisbladis

373 followers · starred Jul 2024

Emma Smith

477 followers · starred Feb 2024

brettcannon/mousebender

Create reproducible installations for a virtual environment from a lock file

HTML

85

175 commits

updated Sep 25, 2026

See the code

README

mousebender

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 do.

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).

Project health

Overall

5.7/10

Maintained

8/10

Code review

0/10
OpenSSF Scorecard

Latest release

2025.1.0 · Aug 22, 2025

Releases this year

0

Significant stargazers

Seth Larson

946 followers · starred Dec 2023

Anthony Shaw

2,354 followers · starred May 2020

adisbladis

373 followers · starred Jul 2024

Emma Smith

477 followers · starred Feb 2024