Skip to main content

Compatibility shims for pip versions 8 thru current.

Project description

https://img.shields.io/pypi/v/pip-shims.svg https://img.shields.io/pypi/l/pip-shims.svg Build Status https://img.shields.io/pypi/pyversions/pip-shims.svg https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg Documentation Status

Warning

Installation

Install from PyPI:

$ pipenv install pip-shims

Install from Github:

$ pipenv install -e git+https://github.com/sarugaku/pip-shims.git#egg=pip-shims

Summary

pip-shims is a set of compatibilty access shims to the pip internal API. pip-shims provides compatibility across several pip releases. The shims are provided using a lazy import strategy by hacking a module by overloading a class instance’s getattr method. This library exists due to my constant writing of the same set of import shims across many different libraries, including pipenv, pip-tools, requirementslib, and passa.

Pip Compatibility

Due to the fact that pip has adopted calver, this project provides shims for pip releases up to 2 years. pip earlier than that period MAY work but the compatibility isn’t guaranteed by the continous integration. For example, the support for pip==20.0 will be dropped at 1/1/2023.

Usage

Importing a shim

You can use pip-shims to expose elements of pip’s internal API by importing them:

>>> from pip_shims import Wheel
>>> mywheel = Wheel('/path/to/my/wheel.whl')

Resolving Dependencies

You can resolve the dependencies of a package using the shimmed resolver interface:

>>> from pip_shims.shims import resolve, InstallRequirement
>>> ireq = InstallRequirement.from_line("requests>=2.20")
>>> results = resolve(ireq)
>>> for k, v in results.items():
...    print("{0}: {1!r}".format(k, v))
requests: <InstallRequirement object: requests>=2.20 from https://pypi-hypernode.com/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl#sha256=9cf5292fcd0f598c671cfc1e0d7d1a7f13bb8085e9a590f48c010551dc6c4b31 editable=False>
idna: <InstallRequirement object: idna<2.9,>=2.5 from https://pypi-hypernode.com/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl#sha256=ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c (from requests>=2.20) editable=False>
urllib3: <InstallRequirement object: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 from https://pypi-hypernode.com/packages/b4/40/a9837291310ee1ccc242ceb6ebfd9eb21539649f193a7c8c86ba15b98539/urllib3-1.25.7-py2.py3-none-any.whl#sha256=a8a318824cc77d1fd4b2bec2ded92646630d7fe8619497b142c84a9e6f5a7293 (from requests>=2.20) editable=False>
chardet: <InstallRequirement object: chardet<3.1.0,>=3.0.2 from https://pypi-hypernode.com/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl#sha256=fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691 (from requests>=2.20) editable=False>
certifi: <InstallRequirement object: certifi>=2017.4.17 from https://pypi-hypernode.com/packages/18/b0/8146a4f8dd402f60744fa380bc73ca47303cccf8b9190fd16a827281eac2/certifi-2019.9.11-py2.py3-none-any.whl#sha256=fd7c7c74727ddcf00e9acd26bba8da604ffec95bf1c2144e67aff7a8b50e6cef (from requests>=2.20) editable=False>

Available Shims

pip-shims provides the following compatibility shims:

Import Path

Import Name

Former Path

__version__

pip_version

<shimmed>

build_wheel

<shimmed>

get_package_finder

<shimmed>

get_requirement_set

<shimmed>

get_resolver

<shimmed>

is_archive_file

download

<shimmed>

is_file_url

download

<shimmed>

make_preparer

<shimmed>

resolve

<shimmed>

shim_unpack

cache

WheelCache

wheel

cli

cmdoptions

cmdoptions

cli.base_command

Command

basecommand

cli.cmdoptions

index_group

cmdoptions

cli.cmdoptions

make_option_group

cmdoptions

cli.parser

ConfigOptionParser

baseparser

cli.req_command

SessionCommandMixin

collector

LinkCollector

commands

commands_dict

commands.freeze

DEV_PKGS

commands.install

InstallCommand

distributions

make_distribution_for_install_requirement

operations.prepare.make_abstract_dist

distributions.base

AbstractDistribution

distributions.installed

InstalledDistribution

distributions.source

SourceDistribution

distributions.wheel

WheelDistribution

download

path_to_url

download

unpack_url

exceptions

BadCommand

exceptions

BestVersionAlreadyInstalled

exceptions

CommandError

exceptions

DistributionNotFound

exceptions

DistributionNotFound

exceptions

InstallationError

exceptions

PipError

exceptions

PreviousBuildDirError

exceptions

RequirementsFileParseError

exceptions

UninstallationError

index

CandidateEvaluator

index

CandidatePreferences

index

LinkEvaluator

index

PackageFinder

index

parse_version

locations

USER_CACHE_DIR

models

FormatControl

index

models.index

PyPI

models.link

Link

index

models.search_scope

SearchScope

models.selection_prefs

SelectionPreferences

models.target_python

TargetPython

network.cache

SafeFileCache

download

operations.freeze

FrozenRequirement

<__init__>

operations.prepare

Downloader

operations.prepare

make_abstract_dist

req.req_set

operations.prepare

RequirementPreparer

pep425tags

get_supported

pep425tags

get_tags

req.constructors

_strip_extras

req.req_install

req.constructors

install_req_from_editable

req.req_install.InstallRequirement

req.constructors

install_req_from_line

req.req_install.InstallRequirement

req.constructors

install_req_from_req_string

req.req_file

parse_requirements

req.req_install

InstallRequirement

req.req_set

RequirementSet

req.req_tracker

get_requirement_tracker

req.req_tracker

RequirementTracker

req.req_uninstall

UninstallPathSet

resolve

Resolver

utils.compat

stdlib_pkgs

compat

utils.hashes

FAVORITE_HASH

utils.misc

get_installed_distributions

utils

utils.misc

is_installable_dir

utils

utils.temp_dir

global_tempdir_manager

utils.temp_dir

TempDirectory

utils.urls

url_to_path

download

vcs.versioncontrol

VcsSupport

vcs.VcsSupport

wheel

Wheel

wheel

WheelBuilder

wheel_builder

build

wheel_builder

build_one

wheel_builder

build_one_inside_env

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_shims-0.7.1.tar.gz (47.0 kB view hashes)

Uploaded Source

Built Distribution

pip_shims-0.7.1-py2.py3-none-any.whl (34.9 kB view hashes)

Uploaded Python 2 Python 3

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