# mousebender
Produce/consume dependency lock files for Python
## Important Links
- [PyPI](https://pypi.org/project/mousebender/)
- [Documentation](https://mousebender.readthedocs.io/)
## 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](https://peps.python.org/pep-0665/) which was an initial attempt at this).
Or put another way, this project wants to work towards a standard for what [pip-tools](https://pypi.org/project/pip-tools/) and [pip requirements files](https://pip.pypa.io/en/stable/reference/requirements-file-format/)
To achieve this goal, this project will need to be able to:
- [x] Know what wheel files are available on an index server ([`mousebender.simple`](https://mousebender.readthedocs.io/en/latest/simple.html))
- [x] Read the metadata from a wheel file (in [`packaging.metadata`](https://packaging.pypa.io/en/stable/metadata.html))
- [ ] 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](https://en.wikipedia.org/wiki/Cheese_Shop_sketch) is named "Mr. Mousebender". And in case you didn't know, the original name of [PyPI](https://pypi.org) was the Cheeseshop after the Monty Python sketch (see [PyPI's 404 page](https://pypi.org/404.html) for a link to the sketch).
Raw data
{
"_id": null,
"home_page": "",
"name": "mousebender",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "packaging,Simple Repository API,PEP 503,PEP 592,PEP 658,PEP 691",
"author": "",
"author_email": "Brett Cannon <brett@python.org>, Derek Keeler <derek@suchcool.ca>",
"download_url": "https://files.pythonhosted.org/packages/f7/09/7b69081839750d70bdc858e949ca2fc0361973ac4950d0883b4a0198c417/mousebender-2023.2.tar.gz",
"platform": null,
"description": "# mousebender\n\nProduce/consume dependency lock files for Python\n\n## Important Links\n\n- [PyPI](https://pypi.org/project/mousebender/)\n- [Documentation](https://mousebender.readthedocs.io/)\n\n## Goals for this project\n\nThis 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](https://peps.python.org/pep-0665/) which was an initial attempt at this).\n\nOr put another way, this project wants to work towards a standard for what [pip-tools](https://pypi.org/project/pip-tools/) and [pip requirements files](https://pip.pypa.io/en/stable/reference/requirements-file-format/)\n\nTo achieve this goal, this project will need to be able to:\n\n- [x] Know what wheel files are available on an index server ([`mousebender.simple`](https://mousebender.readthedocs.io/en/latest/simple.html))\n- [x] Read the metadata from a wheel file (in [`packaging.metadata`](https://packaging.pypa.io/en/stable/metadata.html))\n- [ ] Resolve what wheel files are required to meet the requirements specified in `pyproject.toml`\n- [ ] Produce a lock file of wheel files for a platform\n- [ ] Consume a lock file for the platform to install the specified wheel files\n\n\nWhere does the name come from?\n==============================\nThe customer from [Monty Python's cheese shop sketch](https://en.wikipedia.org/wiki/Cheese_Shop_sketch) is named \"Mr. Mousebender\". And in case you didn't know, the original name of [PyPI](https://pypi.org) was the Cheeseshop after the Monty Python sketch (see [PyPI's 404 page](https://pypi.org/404.html) for a link to the sketch).\n\n",
"bugtrack_url": null,
"license": "",
"summary": "A package for implementing various Python packaging standards.",
"version": "2023.2",
"project_urls": {
"Changelog": "https://github.com/brettcannon/mousebender/releases",
"Documentation": "https://mousebender.readthedocs.io/",
"Issues": "https://github.com/brettcannon/mousebender/issues",
"Repository": "https://github.com/brettcannon/mousebender"
},
"split_keywords": [
"packaging",
"simple repository api",
"pep 503",
"pep 592",
"pep 658",
"pep 691"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "dbc1b0f7859dc59d527cbcade44f81453158f8b782cbeeb8acb5b5b27f1fbdfc",
"md5": "49249b125a9e1b385faa6ed3933fad8a",
"sha256": "b14d382f26bad190f9fa6f11716f0c3f16588517739554db90102ad0cf156ac1"
},
"downloads": -1,
"filename": "mousebender-2023.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "49249b125a9e1b385faa6ed3933fad8a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 7648,
"upload_time": "2023-10-27T23:39:13",
"upload_time_iso_8601": "2023-10-27T23:39:13.623839Z",
"url": "https://files.pythonhosted.org/packages/db/c1/b0f7859dc59d527cbcade44f81453158f8b782cbeeb8acb5b5b27f1fbdfc/mousebender-2023.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f7097b69081839750d70bdc858e949ca2fc0361973ac4950d0883b4a0198c417",
"md5": "407d34d77416dbd0bab10ddfe9155f02",
"sha256": "b26286a3e214503d954912920725018febe04676050a6d06c3ed98ccfc6fd88f"
},
"downloads": -1,
"filename": "mousebender-2023.2.tar.gz",
"has_sig": false,
"md5_digest": "407d34d77416dbd0bab10ddfe9155f02",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 4858085,
"upload_time": "2023-10-27T23:39:16",
"upload_time_iso_8601": "2023-10-27T23:39:16.441034Z",
"url": "https://files.pythonhosted.org/packages/f7/09/7b69081839750d70bdc858e949ca2fc0361973ac4950d0883b4a0198c417/mousebender-2023.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-27 23:39:16",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "brettcannon",
"github_project": "mousebender",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "mousebender"
}