{"id":40499054,"url":"https://github.com/sarugaku/pip-shims","last_synced_at":"2026-01-20T19:03:31.142Z","repository":{"id":41203333,"uuid":"144046369","full_name":"sarugaku/pip-shims","owner":"sarugaku","description":"Compatibility shims for pip versions 8 thru current.","archived":false,"fork":false,"pushed_at":"2022-08-31T20:27:00.000Z","size":846,"stargazers_count":11,"open_issues_count":5,"forks_count":5,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-06-19T00:34:07.123Z","etag":null,"topics":["pip","python"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sarugaku.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-08-08T17:26:54.000Z","updated_at":"2021-12-24T14:37:17.000Z","dependencies_parsed_at":"2022-07-14T10:31:21.852Z","dependency_job_id":null,"html_url":"https://github.com/sarugaku/pip-shims","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/sarugaku/pip-shims","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sarugaku%2Fpip-shims","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sarugaku%2Fpip-shims/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sarugaku%2Fpip-shims/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sarugaku%2Fpip-shims/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sarugaku","download_url":"https://codeload.github.com/sarugaku/pip-shims/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sarugaku%2Fpip-shims/sbom","scorecard":{"id":800918,"data":{"date":"2025-08-11","repo":{"name":"github.com/sarugaku/pip-shims","commit":"81267a66485b9d425edfc9fc7d474bb6cdc5c813"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 1/25 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Warn: no topLevel permission defined: .github/workflows/pypi_upload.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/sarugaku/pip-shims/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/sarugaku/pip-shims/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/sarugaku/pip-shims/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/sarugaku/pip-shims/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:51: update your workflow using https://app.stepsecurity.io/secureworkflow/sarugaku/pip-shims/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:61: update your workflow using https://app.stepsecurity.io/secureworkflow/sarugaku/pip-shims/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi_upload.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/sarugaku/pip-shims/pypi_upload.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi_upload.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/sarugaku/pip-shims/pypi_upload.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi_upload.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/sarugaku/pip-shims/pypi_upload.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi_upload.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/sarugaku/pip-shims/pypi_upload.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi_upload.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/sarugaku/pip-shims/pypi_upload.yml/main?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:70","Warn: pipCommand not pinned by hash: .github/workflows/pypi_upload.yml:38","Info:   0 out of   8 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned","Info:   0 out of   2 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: ISC License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 11 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-23T10:27:41.170Z","repository_id":41203333,"created_at":"2025-08-23T10:27:41.171Z","updated_at":"2025-08-23T10:27:41.171Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28609582,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T18:56:40.769Z","status":"ssl_error","status_checked_at":"2026-01-20T18:54:26.653Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pip","python"],"created_at":"2026-01-20T19:02:50.906Z","updated_at":"2026-01-20T19:03:31.081Z","avatar_url":"https://github.com/sarugaku.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"===============================================================================\npip-shims: Shims for importing packages from pip's internals.\n===============================================================================\n\n.. image:: https://img.shields.io/pypi/v/pip-shims.svg\n    :target: https://pypi.python.org/pypi/pip-shims\n\n.. image:: https://img.shields.io/pypi/l/pip-shims.svg\n    :target: https://pypi.python.org/pypi/pip-shims\n\n.. image:: https://github.com/sarugaku/pip-shims/actions/workflows/ci.yml/badge.svg\n    :target: https://github.com/sarugaku/pip-shims/actions/workflows/ci.yml\n    :alt: Build Status\n\n.. image:: https://img.shields.io/pypi/pyversions/pip-shims.svg\n    :target: https://pypi.python.org/pypi/pip-shims\n\n.. image:: https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg\n    :target: https://saythanks.io/to/techalchemy\n\n.. image:: https://readthedocs.org/projects/pip-shims/badge/?version=latest\n    :target: https://pip-shims.readthedocs.io/en/latest/?badge=latest\n    :alt: Documentation Status\n\n\nWarning\n********\n\n.. warning::\n   The authors of `pip`_ **do not condone** the use of this package. Relying on pip's\n   internals is a **dangerous** idea for your software as they are broken intentionally\n   and regularly.  This package may not always be completely updated up PyPI, so relying\n   on it may break your code! User beware!\n\n.. _pip: https://github.com/pypa/pip\n\n\nInstallation\n*************\n\nInstall from `PyPI`_:\n\n .. code-block:: console\n\n    $ pipenv install pip-shims\n\nInstall from `Github`_:\n\n.. code-block:: console\n\n    $ pipenv install -e git+https://github.com/sarugaku/pip-shims.git#egg=pip-shims\n\n\n.. _PyPI: https://www.pypi.org/project/pip-shims\n.. _Github: https://github.com/sarugaku/pip-shims\n\n\n.. _`Summary`:\n\nSummary\n********\n\n**pip-shims** is a set of compatibilty access shims to the `pip`_ internal API. **pip-shims**\nprovides compatibility across several pip releases.  The shims are provided using a lazy\nimport strategy by hacking a module by overloading a class instance's *getattr* method.\nThis library exists due to my constant writing of the same set of import shims across\nmany different libraries, including `pipenv`_, `pip-tools`_, `requirementslib`_, and\n`passa`_.\n\n.. _passa: https://github.com/sarugaku/passa\n.. _pip: https://github.com/pypa/pip\n.. _pipenv: https://github.com/pypa/pipenv\n.. _pip-tools: https://github.com/jazzband/pip-tools\n.. _requirementslib: https://github.com/sarugaku/requirementslib\n\nPip Compatibility\n*****************\n\nDue to the fact that pip has adopted `calver`_, this project provides shims for pip releases\nup to 2 years. pip earlier than that period MAY work but the compatibility isn't guaranteed\nby the continous integration. For example, the support for ``pip==20.0`` will be dropped at 1/1/2023.\n\n.. _calver: https://calver.org/\n\n.. _`Usage`:\n\nUsage\n******\n\nImporting a shim\n--------------------\n\nYou can use **pip-shims** to expose elements of **pip**'s internal API by importing them:\n\n.. code-block:: pycon\n\n    \u003e\u003e\u003e from pip_shims import Wheel\n    \u003e\u003e\u003e mywheel = Wheel('/path/to/my/wheel.whl')\n\n\nResolving Dependencies\n----------------------------\n\nYou can resolve the dependencies of a package using the shimmed resolver interface:\n\n.. code-block:: pycon\n\n    \u003e\u003e\u003e from pip_shims.shims import resolve, InstallRequirement\n    \u003e\u003e\u003e ireq = InstallRequirement.from_line(\"requests\u003e=2.20\")\n    \u003e\u003e\u003e results = resolve(ireq)\n    \u003e\u003e\u003e for k, v in results.items():\n    ...    print(\"{0}: {1!r}\".format(k, v))\n    requests: \u003cInstallRequirement object: requests\u003e=2.20 from https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl#sha256=9cf5292fcd0f598c671cfc1e0d7d1a7f13bb8085e9a590f48c010551dc6c4b31 editable=False\u003e\n    idna: \u003cInstallRequirement object: idna\u003c2.9,\u003e=2.5 from https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl#sha256=ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c (from requests\u003e=2.20) editable=False\u003e\n    urllib3: \u003cInstallRequirement object: urllib3!=1.25.0,!=1.25.1,\u003c1.26,\u003e=1.21.1 from https://files.pythonhosted.org/packages/b4/40/a9837291310ee1ccc242ceb6ebfd9eb21539649f193a7c8c86ba15b98539/urllib3-1.25.7-py2.py3-none-any.whl#sha256=a8a318824cc77d1fd4b2bec2ded92646630d7fe8619497b142c84a9e6f5a7293 (from requests\u003e=2.20) editable=False\u003e\n    chardet: \u003cInstallRequirement object: chardet\u003c3.1.0,\u003e=3.0.2 from https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl#sha256=fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691 (from requests\u003e=2.20) editable=False\u003e\n    certifi: \u003cInstallRequirement object: certifi\u003e=2017.4.17 from https://files.pythonhosted.org/packages/18/b0/8146a4f8dd402f60744fa380bc73ca47303cccf8b9190fd16a827281eac2/certifi-2019.9.11-py2.py3-none-any.whl#sha256=fd7c7c74727ddcf00e9acd26bba8da604ffec95bf1c2144e67aff7a8b50e6cef (from requests\u003e=2.20) editable=False\u003e\n\n\n\nAvailable Shims\n****************\n\n**pip-shims** provides the following compatibility shims:\n\n======================== ========================================== =======================================\nImport Path               Import Name                                Former Path\n======================== ========================================== =======================================\n__version__               pip_version\n\u003cshimmed\u003e                 build_wheel\n\u003cshimmed\u003e                 get_package_finder\n\u003cshimmed\u003e                 get_requirement_set\n\u003cshimmed\u003e                 get_resolver\n\u003cshimmed\u003e                 is_archive_file                            download\n\u003cshimmed\u003e                 is_file_url                                download\n\u003cshimmed\u003e                 make_preparer\n\u003cshimmed\u003e                 resolve\n\u003cshimmed\u003e                 shim_unpack\ncache                     WheelCache                                 wheel\ncli                       cmdoptions                                 cmdoptions\ncli.base_command          Command                                    basecommand\ncli.cmdoptions            index_group                                cmdoptions\ncli.cmdoptions            make_option_group                          cmdoptions\ncli.parser                ConfigOptionParser                         baseparser\ncli.req_command           SessionCommandMixin\ncollector                 LinkCollector\ncommands                  commands_dict\ncommands.freeze           DEV_PKGS\ncommands.install          InstallCommand\ndistributions             make_distribution_for_install_requirement  operations.prepare.make_abstract_dist\ndistributions.base        AbstractDistribution\ndistributions.installed   InstalledDistribution\ndistributions.source      SourceDistribution\ndistributions.wheel       WheelDistribution\ndownload                  path_to_url\ndownload                  unpack_url\nexceptions                BadCommand\nexceptions                BestVersionAlreadyInstalled\nexceptions                CommandError\nexceptions                DistributionNotFound\nexceptions                DistributionNotFound\nexceptions                InstallationError\nexceptions                PipError\nexceptions                PreviousBuildDirError\nexceptions                RequirementsFileParseError\nexceptions                UninstallationError\nindex                     CandidateEvaluator\nindex                     CandidatePreferences\nindex                     LinkEvaluator\nindex                     PackageFinder\nindex                     parse_version\nlocations                 USER_CACHE_DIR\nmodels                    FormatControl                              index\nmodels.index              PyPI\nmodels.link               Link                                       index\nmodels.search_scope       SearchScope\nmodels.selection_prefs    SelectionPreferences\nmodels.target_python      TargetPython\nnetwork.cache             SafeFileCache                              download\noperations.freeze         FrozenRequirement                          \u003c`__init__`\u003e\noperations.prepare        Downloader\noperations.prepare        make_abstract_dist                         req.req_set\noperations.prepare        RequirementPreparer\npep425tags                get_supported\npep425tags                get_tags\nreq.constructors          _strip_extras                              req.req_install\nreq.constructors          install_req_from_editable                  req.req_install.InstallRequirement\nreq.constructors          install_req_from_line                      req.req_install.InstallRequirement\nreq.constructors          install_req_from_req_string\nreq.req_file              parse_requirements\nreq.req_install           InstallRequirement\nreq.req_set               RequirementSet\nreq.req_tracker           get_requirement_tracker\nreq.req_tracker           RequirementTracker\nreq.req_uninstall         UninstallPathSet\nresolve                   Resolver\nutils.compat              stdlib_pkgs                                compat\nutils.hashes              FAVORITE_HASH\nutils.misc                get_installed_distributions                utils\nutils.misc                is_installable_dir                         utils\nutils.temp_dir            global_tempdir_manager\nutils.temp_dir            TempDirectory\nutils.urls                url_to_path                                download\nvcs.versioncontrol        VcsSupport                                 vcs.VcsSupport\nwheel                     Wheel\nwheel                     WheelBuilder\nwheel_builder             build\nwheel_builder             build_one\nwheel_builder             build_one_inside_env\n======================== ========================================== =======================================\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsarugaku%2Fpip-shims","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsarugaku%2Fpip-shims","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsarugaku%2Fpip-shims/lists"}