Compatibility shims for pip versions 8 thru current.
Project description
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pip_shims-0.7.0.tar.gz
.
File metadata
- Download URL: pip_shims-0.7.0.tar.gz
- Upload date:
- Size: 46.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 116466de9f6bd9a5799cf5f16fe383cd07a45073f2f7e3390af0b73ed3675317 |
|
MD5 | c92bc0983d27aa3e77e15b0ba5ae4a5e |
|
BLAKE2b-256 | 874fb8b462ba2e33bddccf53745b85c9e194586ca3ca42f400dfdf0436ad59f6 |
Provenance
File details
Details for the file pip_shims-0.7.0-py2.py3-none-any.whl
.
File metadata
- Download URL: pip_shims-0.7.0-py2.py3-none-any.whl
- Upload date:
- Size: 34.9 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | de39106ae4e43f3b7c98e4edf74efb71da308c3ae41b33dc484ba7965bcc1a52 |
|
MD5 | fcfe84dad2a98c0691738722dbdf8b0d |
|
BLAKE2b-256 | 447a465765e1187096fe897a910e72d6f1b5510b613610e8a2604098cfb37670 |