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-2.0.0.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

mousebender-2.0.0-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mousebender-2.0.0.tar.gz
  • Upload date:
  • Size: 6.1 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.9.1 tqdm/4.46.0 CPython/3.8.2

File hashes

Hashes for mousebender-2.0.0.tar.gz
Algorithm Hash digest
SHA256 c5953026378e5dcc7090596dfcbf73aa5a9786842357273b1df974ebd79bd760
MD5 e6492cf62321a83a5bdf71f73c793a2f
BLAKE2b-256 35bcdb77f8ca1ccf85f5c3324e4f62fc74bf6f6c098da11d7c30ef6d0f43e859

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: mousebender-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 5.8 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.9.1 tqdm/4.46.0 CPython/3.8.2

File hashes

Hashes for mousebender-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a6f9adfbd17bfb0e6bb5de9a27083e01dfb86ed9c3861e04143d9fd6db373f7c
MD5 a5e78c8ae39f73575b7cfb9596ae5b71
BLAKE2b-256 f4b3f6fdbff6395e9b77b5619160180489410fb2f42f41272994353e7ecf5bdf

See more details on using hashes here.

Provenance

Supported by

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