Skip to main content

A package for implementing various Python packaging standards

Project description

A package for installing fully-specified Python packages.

Package contents

Goals for this project

The goal is to provide a package which could install all dependencies as frozen by a tool like pip-tools via an API (or put another way, what is required to install pip w/o using pip itself?). This avoids relying on pip’s CLI to do installations but instead provide a programmatic API. It also helps discover any holes in specifications and/or packages for providing full support for Python package installation based on standards.

The steps to installing a package

PyPA specifications

  1. Figure out what packages are necessary

    1. For an app, read lock file (?)

    2. For a package:

      1. Read list of dependencies (?)

      2. Solve dependency constraints (ResolveLib)

  2. Get the wheel to install

    1. Check if package is already installed (spec / importlib-metadata)

    2. Check local wheel cache (?; how pip does it)

    3. Choose appropriate file from PyPI/index

      1. Process the list of files (simple repository API / mousebender.simple)

      2. Calculate best-fitting wheel (spec / packaging.tags)

      3. If no wheel found …

        1. Select and download the sdist (?)

        2. Build the wheel (PEP 517, PEP 518 / pep517)

    4. Download the wheel

    5. Cache the wheel locally (?)

  3. Install the wheel

    1. Install the files (spec / distlib.wheel)

    2. Record the installation (spec / ?)

Where does the name come from?

The customer from Monty Python’s cheese shop sketch is named “Mr. Mousebender”. And in case you don’t know, the original name of PyPI was the Cheeseshop after the Monty Python sketch.


CI status 100% branch coverage Formatted with Black Checked by mypy PyPI - Python Version PyPI - License PyPI - Wheel

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mousebender-1.0.1.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mousebender-1.0.1-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

Details for the file mousebender-1.0.1.tar.gz.

File metadata

  • Download URL: mousebender-1.0.1.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.8.0 tqdm/4.45.0 CPython/3.8.2

File hashes

Hashes for mousebender-1.0.1.tar.gz
Algorithm Hash digest
SHA256 8e66af0b0fb118b5f6cc1a44fb180be0c7c192b5194a4370ac62b4f83a4c58ca
MD5 41d07ef49954984101536c1f3d1500d7
BLAKE2b-256 fe0f4407aca7be3a272bdc2f9435bba72f918c4e83cb138167668cd07b55653a

See more details on using hashes here.

File details

Details for the file mousebender-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: mousebender-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 5.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.8.0 tqdm/4.45.0 CPython/3.8.2

File hashes

Hashes for mousebender-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 19e18bc23b86897f94fdbdad5b20fea538f249f5596a2112faee9ade6143ce07
MD5 1d266d8f806a0f02a7b22027f1ba45ef
BLAKE2b-256 0f622753a6fba280d7ccbf23757ac2fb8cb7bbee47835f6f8c1b29d4517d3254

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page