Skip to main content

An unofficial, importable pip API

Project description

Since pip is a command-line-tool, it does not have an official, supported, importable API.

However, this does not mean that people haven't tried to import pip, usually to end up with much headache when pip's maintainers do routine refactoring.

This project attempts to provide an importable pip API, which is fully compliant with the recommended method of using pip from your program.

Supported Commands

Not all commands are supported in all versions of pip and on all platforms. If the command you are trying to use is not compatible, pip_api will raise a pip_api.exceptions.Incompatible exception for your program to catch.

Available with all pip versions:

  • pip_api.version()

    Returns the pip version as a string, e.g. "9.0.1"

  • pip_api.installed_distributions(local=False)

    Returns a list of all installed distributions as a Distribution object with the following attributes:

    • Distribution.name (string): The name of the installed distribution
    • Distribution.version (packaging.version.Version): The version of the installed distribution
    • Distribution.location (string): The location of the installed distribution
    • Distribution.editable (bool): Whether the distribution is editable or not Optionally takes a local parameter to filter out globally-installed packages
  • pip_api.parse_requirements(filename, options=None, include_invalid=False)

    Takes a path to a filename of a Requirements file. Returns a mapping from package name to a packaging.requirements.Requirement object with the following attributes:

    • Requirement.name (string): The name of the requirement.
    • Requirement.extras (set): A set of extras that the requirement specifies.
    • Requirement.specifier (packaging.specifiers.SpecifierSet): A SpecifierSet of the version specified by the requirement.
    • Requirement.marker (packaging.markers.Marker): A Marker of the marker for the requirement. Can be None. Optionally takes an options parameter to override the regex used to skip requirements lines. Optionally takes an include_invalid parameter to return an UnparsedRequirement in the event that a requirement cannot be parsed correctly.

Available with pip>=8.0.0:

  • pip_api.hash(filename, algorithm='sha256')

    Returns the resulting as a string. Valid algorithm parameters are 'sha256', 'sha384', and 'sha512'

Available with pip>=19.2:

  • pip_api.installed_distributions(local=False, paths=[])

    As described above, but with an extra optional paths parameter to provide a list of locations to look for installed distributions. Attempting to use the paths parameter with pip<19.2 will result in a PipError.

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

pip-api-0.0.25.tar.gz (110.0 kB view details)

Uploaded Source

Built Distribution

pip_api-0.0.25-py3-none-any.whl (110.1 kB view details)

Uploaded Python 3

File details

Details for the file pip-api-0.0.25.tar.gz.

File metadata

  • Download URL: pip-api-0.0.25.tar.gz
  • Upload date:
  • Size: 110.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.0.1 pkginfo/1.5.0.1 requests/2.23.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2

File hashes

Hashes for pip-api-0.0.25.tar.gz
Algorithm Hash digest
SHA256 f41a337d1a7f81c0712da01da353c016f1f75fc7b1b5bf47af5bfca16b2df5a1
MD5 c513f0358b057faa621a83952bbface1
BLAKE2b-256 59345e2ad3bf3ac650fa6cfeb7b673e8a3592cd3d12516fd4885248837faae55

See more details on using hashes here.

Provenance

File details

Details for the file pip_api-0.0.25-py3-none-any.whl.

File metadata

  • Download URL: pip_api-0.0.25-py3-none-any.whl
  • Upload date:
  • Size: 110.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.0.1 pkginfo/1.5.0.1 requests/2.23.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2

File hashes

Hashes for pip_api-0.0.25-py3-none-any.whl
Algorithm Hash digest
SHA256 cd188cbcf20c387b73236e64b0ade5545e6e211ab003be35283aeacf36091f3f
MD5 1abc8d947befea63d5a2b2b8ddee2aa7
BLAKE2b-256 b83ec79ab5a3f609fd326a270fead01dc6519f21cb2e5e9ef85e621afeaeb46c

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