cli-ih 0.6.3__py3-none-any.whl → 0.6.3.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cli_ih/asyncClient.py +13 -7
- cli_ih/client.py +13 -6
- {cli_ih-0.6.3.dist-info → cli_ih-0.6.3.1.dist-info}/METADATA +1 -1
- cli_ih-0.6.3.1.dist-info/RECORD +425 -0
- {cli_ih-0.6.3.dist-info → cli_ih-0.6.3.1.dist-info}/WHEEL +1 -1
- {cli_ih-0.6.3.dist-info → cli_ih-0.6.3.1.dist-info}/top_level.txt +1 -0
- venv/Lib/site-packages/__editable___cli_ih_0_6_3_1_finder.py +85 -0
- venv/Lib/site-packages/pip/__init__.py +13 -0
- venv/Lib/site-packages/pip/__main__.py +24 -0
- venv/Lib/site-packages/pip/__pip-runner__.py +50 -0
- venv/Lib/site-packages/pip/_internal/__init__.py +18 -0
- venv/Lib/site-packages/pip/_internal/build_env.py +349 -0
- venv/Lib/site-packages/pip/_internal/cache.py +291 -0
- venv/Lib/site-packages/pip/_internal/cli/__init__.py +3 -0
- venv/Lib/site-packages/pip/_internal/cli/autocompletion.py +184 -0
- venv/Lib/site-packages/pip/_internal/cli/base_command.py +244 -0
- venv/Lib/site-packages/pip/_internal/cli/cmdoptions.py +1138 -0
- venv/Lib/site-packages/pip/_internal/cli/command_context.py +28 -0
- venv/Lib/site-packages/pip/_internal/cli/index_command.py +175 -0
- venv/Lib/site-packages/pip/_internal/cli/main.py +80 -0
- venv/Lib/site-packages/pip/_internal/cli/main_parser.py +134 -0
- venv/Lib/site-packages/pip/_internal/cli/parser.py +298 -0
- venv/Lib/site-packages/pip/_internal/cli/progress_bars.py +151 -0
- venv/Lib/site-packages/pip/_internal/cli/req_command.py +351 -0
- venv/Lib/site-packages/pip/_internal/cli/spinners.py +235 -0
- venv/Lib/site-packages/pip/_internal/cli/status_codes.py +6 -0
- venv/Lib/site-packages/pip/_internal/commands/__init__.py +139 -0
- venv/Lib/site-packages/pip/_internal/commands/cache.py +231 -0
- venv/Lib/site-packages/pip/_internal/commands/check.py +66 -0
- venv/Lib/site-packages/pip/_internal/commands/completion.py +135 -0
- venv/Lib/site-packages/pip/_internal/commands/configuration.py +288 -0
- venv/Lib/site-packages/pip/_internal/commands/debug.py +203 -0
- venv/Lib/site-packages/pip/_internal/commands/download.py +145 -0
- venv/Lib/site-packages/pip/_internal/commands/freeze.py +107 -0
- venv/Lib/site-packages/pip/_internal/commands/hash.py +58 -0
- venv/Lib/site-packages/pip/_internal/commands/help.py +40 -0
- venv/Lib/site-packages/pip/_internal/commands/index.py +159 -0
- venv/Lib/site-packages/pip/_internal/commands/inspect.py +92 -0
- venv/Lib/site-packages/pip/_internal/commands/install.py +798 -0
- venv/Lib/site-packages/pip/_internal/commands/list.py +400 -0
- venv/Lib/site-packages/pip/_internal/commands/lock.py +170 -0
- venv/Lib/site-packages/pip/_internal/commands/search.py +178 -0
- venv/Lib/site-packages/pip/_internal/commands/show.py +231 -0
- venv/Lib/site-packages/pip/_internal/commands/uninstall.py +113 -0
- venv/Lib/site-packages/pip/_internal/commands/wheel.py +181 -0
- venv/Lib/site-packages/pip/_internal/configuration.py +397 -0
- venv/Lib/site-packages/pip/_internal/distributions/__init__.py +21 -0
- venv/Lib/site-packages/pip/_internal/distributions/base.py +55 -0
- venv/Lib/site-packages/pip/_internal/distributions/installed.py +33 -0
- venv/Lib/site-packages/pip/_internal/distributions/sdist.py +165 -0
- venv/Lib/site-packages/pip/_internal/distributions/wheel.py +44 -0
- venv/Lib/site-packages/pip/_internal/exceptions.py +881 -0
- venv/Lib/site-packages/pip/_internal/index/__init__.py +1 -0
- venv/Lib/site-packages/pip/_internal/index/collector.py +489 -0
- venv/Lib/site-packages/pip/_internal/index/package_finder.py +1059 -0
- venv/Lib/site-packages/pip/_internal/index/sources.py +287 -0
- venv/Lib/site-packages/pip/_internal/locations/__init__.py +441 -0
- venv/Lib/site-packages/pip/_internal/locations/_distutils.py +173 -0
- venv/Lib/site-packages/pip/_internal/locations/_sysconfig.py +215 -0
- venv/Lib/site-packages/pip/_internal/locations/base.py +82 -0
- venv/Lib/site-packages/pip/_internal/main.py +12 -0
- venv/Lib/site-packages/pip/_internal/metadata/__init__.py +164 -0
- venv/Lib/site-packages/pip/_internal/metadata/_json.py +87 -0
- venv/Lib/site-packages/pip/_internal/metadata/base.py +685 -0
- venv/Lib/site-packages/pip/_internal/metadata/importlib/__init__.py +6 -0
- venv/Lib/site-packages/pip/_internal/metadata/importlib/_compat.py +87 -0
- venv/Lib/site-packages/pip/_internal/metadata/importlib/_dists.py +223 -0
- venv/Lib/site-packages/pip/_internal/metadata/importlib/_envs.py +143 -0
- venv/Lib/site-packages/pip/_internal/metadata/pkg_resources.py +298 -0
- venv/Lib/site-packages/pip/_internal/models/__init__.py +1 -0
- venv/Lib/site-packages/pip/_internal/models/candidate.py +25 -0
- venv/Lib/site-packages/pip/_internal/models/direct_url.py +227 -0
- venv/Lib/site-packages/pip/_internal/models/format_control.py +78 -0
- venv/Lib/site-packages/pip/_internal/models/index.py +28 -0
- venv/Lib/site-packages/pip/_internal/models/installation_report.py +57 -0
- venv/Lib/site-packages/pip/_internal/models/link.py +613 -0
- venv/Lib/site-packages/pip/_internal/models/pylock.py +188 -0
- venv/Lib/site-packages/pip/_internal/models/scheme.py +25 -0
- venv/Lib/site-packages/pip/_internal/models/search_scope.py +126 -0
- venv/Lib/site-packages/pip/_internal/models/selection_prefs.py +53 -0
- venv/Lib/site-packages/pip/_internal/models/target_python.py +122 -0
- venv/Lib/site-packages/pip/_internal/models/wheel.py +141 -0
- venv/Lib/site-packages/pip/_internal/network/__init__.py +1 -0
- venv/Lib/site-packages/pip/_internal/network/auth.py +564 -0
- venv/Lib/site-packages/pip/_internal/network/cache.py +133 -0
- venv/Lib/site-packages/pip/_internal/network/download.py +342 -0
- venv/Lib/site-packages/pip/_internal/network/lazy_wheel.py +213 -0
- venv/Lib/site-packages/pip/_internal/network/session.py +528 -0
- venv/Lib/site-packages/pip/_internal/network/utils.py +98 -0
- venv/Lib/site-packages/pip/_internal/network/xmlrpc.py +61 -0
- venv/Lib/site-packages/pip/_internal/operations/__init__.py +0 -0
- venv/Lib/site-packages/pip/_internal/operations/build/__init__.py +0 -0
- venv/Lib/site-packages/pip/_internal/operations/build/build_tracker.py +140 -0
- venv/Lib/site-packages/pip/_internal/operations/build/metadata.py +38 -0
- venv/Lib/site-packages/pip/_internal/operations/build/metadata_editable.py +41 -0
- venv/Lib/site-packages/pip/_internal/operations/build/metadata_legacy.py +73 -0
- venv/Lib/site-packages/pip/_internal/operations/build/wheel.py +38 -0
- venv/Lib/site-packages/pip/_internal/operations/build/wheel_editable.py +47 -0
- venv/Lib/site-packages/pip/_internal/operations/build/wheel_legacy.py +119 -0
- venv/Lib/site-packages/pip/_internal/operations/check.py +175 -0
- venv/Lib/site-packages/pip/_internal/operations/freeze.py +259 -0
- venv/Lib/site-packages/pip/_internal/operations/install/__init__.py +1 -0
- venv/Lib/site-packages/pip/_internal/operations/install/editable_legacy.py +48 -0
- venv/Lib/site-packages/pip/_internal/operations/install/wheel.py +746 -0
- venv/Lib/site-packages/pip/_internal/operations/prepare.py +742 -0
- venv/Lib/site-packages/pip/_internal/pyproject.py +182 -0
- venv/Lib/site-packages/pip/_internal/req/__init__.py +105 -0
- venv/Lib/site-packages/pip/_internal/req/constructors.py +562 -0
- venv/Lib/site-packages/pip/_internal/req/req_dependency_group.py +75 -0
- venv/Lib/site-packages/pip/_internal/req/req_file.py +620 -0
- venv/Lib/site-packages/pip/_internal/req/req_install.py +937 -0
- venv/Lib/site-packages/pip/_internal/req/req_set.py +81 -0
- venv/Lib/site-packages/pip/_internal/req/req_uninstall.py +639 -0
- venv/Lib/site-packages/pip/_internal/resolution/__init__.py +0 -0
- venv/Lib/site-packages/pip/_internal/resolution/base.py +20 -0
- venv/Lib/site-packages/pip/_internal/resolution/legacy/__init__.py +0 -0
- venv/Lib/site-packages/pip/_internal/resolution/legacy/resolver.py +598 -0
- venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__init__.py +0 -0
- venv/Lib/site-packages/pip/_internal/resolution/resolvelib/base.py +142 -0
- venv/Lib/site-packages/pip/_internal/resolution/resolvelib/candidates.py +582 -0
- venv/Lib/site-packages/pip/_internal/resolution/resolvelib/factory.py +814 -0
- venv/Lib/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +166 -0
- venv/Lib/site-packages/pip/_internal/resolution/resolvelib/provider.py +276 -0
- venv/Lib/site-packages/pip/_internal/resolution/resolvelib/reporter.py +85 -0
- venv/Lib/site-packages/pip/_internal/resolution/resolvelib/requirements.py +247 -0
- venv/Lib/site-packages/pip/_internal/resolution/resolvelib/resolver.py +336 -0
- venv/Lib/site-packages/pip/_internal/self_outdated_check.py +254 -0
- venv/Lib/site-packages/pip/_internal/utils/__init__.py +0 -0
- venv/Lib/site-packages/pip/_internal/utils/_jaraco_text.py +109 -0
- venv/Lib/site-packages/pip/_internal/utils/_log.py +38 -0
- venv/Lib/site-packages/pip/_internal/utils/appdirs.py +52 -0
- venv/Lib/site-packages/pip/_internal/utils/compat.py +85 -0
- venv/Lib/site-packages/pip/_internal/utils/compatibility_tags.py +201 -0
- venv/Lib/site-packages/pip/_internal/utils/datetime.py +10 -0
- venv/Lib/site-packages/pip/_internal/utils/deprecation.py +126 -0
- venv/Lib/site-packages/pip/_internal/utils/direct_url_helpers.py +87 -0
- venv/Lib/site-packages/pip/_internal/utils/egg_link.py +81 -0
- venv/Lib/site-packages/pip/_internal/utils/entrypoints.py +88 -0
- venv/Lib/site-packages/pip/_internal/utils/filesystem.py +152 -0
- venv/Lib/site-packages/pip/_internal/utils/filetypes.py +24 -0
- venv/Lib/site-packages/pip/_internal/utils/glibc.py +102 -0
- venv/Lib/site-packages/pip/_internal/utils/hashes.py +150 -0
- venv/Lib/site-packages/pip/_internal/utils/logging.py +364 -0
- venv/Lib/site-packages/pip/_internal/utils/misc.py +765 -0
- venv/Lib/site-packages/pip/_internal/utils/packaging.py +44 -0
- venv/Lib/site-packages/pip/_internal/utils/retry.py +45 -0
- venv/Lib/site-packages/pip/_internal/utils/setuptools_build.py +149 -0
- venv/Lib/site-packages/pip/_internal/utils/subprocess.py +248 -0
- venv/Lib/site-packages/pip/_internal/utils/temp_dir.py +294 -0
- venv/Lib/site-packages/pip/_internal/utils/unpacking.py +337 -0
- venv/Lib/site-packages/pip/_internal/utils/urls.py +55 -0
- venv/Lib/site-packages/pip/_internal/utils/virtualenv.py +105 -0
- venv/Lib/site-packages/pip/_internal/utils/wheel.py +132 -0
- venv/Lib/site-packages/pip/_internal/vcs/__init__.py +15 -0
- venv/Lib/site-packages/pip/_internal/vcs/bazaar.py +130 -0
- venv/Lib/site-packages/pip/_internal/vcs/git.py +571 -0
- venv/Lib/site-packages/pip/_internal/vcs/mercurial.py +186 -0
- venv/Lib/site-packages/pip/_internal/vcs/subversion.py +335 -0
- venv/Lib/site-packages/pip/_internal/vcs/versioncontrol.py +693 -0
- venv/Lib/site-packages/pip/_internal/wheel_builder.py +334 -0
- venv/Lib/site-packages/pip/_vendor/__init__.py +117 -0
- venv/Lib/site-packages/pip/_vendor/cachecontrol/__init__.py +29 -0
- venv/Lib/site-packages/pip/_vendor/cachecontrol/_cmd.py +70 -0
- venv/Lib/site-packages/pip/_vendor/cachecontrol/adapter.py +168 -0
- venv/Lib/site-packages/pip/_vendor/cachecontrol/cache.py +75 -0
- venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +8 -0
- venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +145 -0
- venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +48 -0
- venv/Lib/site-packages/pip/_vendor/cachecontrol/controller.py +511 -0
- venv/Lib/site-packages/pip/_vendor/cachecontrol/filewrapper.py +119 -0
- venv/Lib/site-packages/pip/_vendor/cachecontrol/heuristics.py +157 -0
- venv/Lib/site-packages/pip/_vendor/cachecontrol/py.typed +0 -0
- venv/Lib/site-packages/pip/_vendor/cachecontrol/serialize.py +146 -0
- venv/Lib/site-packages/pip/_vendor/cachecontrol/wrapper.py +43 -0
- venv/Lib/site-packages/pip/_vendor/certifi/__init__.py +4 -0
- venv/Lib/site-packages/pip/_vendor/certifi/__main__.py +12 -0
- venv/Lib/site-packages/pip/_vendor/certifi/core.py +83 -0
- venv/Lib/site-packages/pip/_vendor/certifi/py.typed +0 -0
- venv/Lib/site-packages/pip/_vendor/dependency_groups/__init__.py +13 -0
- venv/Lib/site-packages/pip/_vendor/dependency_groups/__main__.py +65 -0
- venv/Lib/site-packages/pip/_vendor/dependency_groups/_implementation.py +209 -0
- venv/Lib/site-packages/pip/_vendor/dependency_groups/_lint_dependency_groups.py +59 -0
- venv/Lib/site-packages/pip/_vendor/dependency_groups/_pip_wrapper.py +62 -0
- venv/Lib/site-packages/pip/_vendor/dependency_groups/_toml_compat.py +9 -0
- venv/Lib/site-packages/pip/_vendor/dependency_groups/py.typed +0 -0
- venv/Lib/site-packages/pip/_vendor/distlib/__init__.py +33 -0
- venv/Lib/site-packages/pip/_vendor/distlib/compat.py +1137 -0
- venv/Lib/site-packages/pip/_vendor/distlib/resources.py +358 -0
- venv/Lib/site-packages/pip/_vendor/distlib/scripts.py +447 -0
- venv/Lib/site-packages/pip/_vendor/distlib/util.py +1984 -0
- venv/Lib/site-packages/pip/_vendor/distro/__init__.py +54 -0
- venv/Lib/site-packages/pip/_vendor/distro/__main__.py +4 -0
- venv/Lib/site-packages/pip/_vendor/distro/distro.py +1403 -0
- venv/Lib/site-packages/pip/_vendor/distro/py.typed +0 -0
- venv/Lib/site-packages/pip/_vendor/idna/__init__.py +45 -0
- venv/Lib/site-packages/pip/_vendor/idna/codec.py +122 -0
- venv/Lib/site-packages/pip/_vendor/idna/compat.py +15 -0
- venv/Lib/site-packages/pip/_vendor/idna/core.py +437 -0
- venv/Lib/site-packages/pip/_vendor/idna/idnadata.py +4243 -0
- venv/Lib/site-packages/pip/_vendor/idna/intranges.py +57 -0
- venv/Lib/site-packages/pip/_vendor/idna/package_data.py +1 -0
- venv/Lib/site-packages/pip/_vendor/idna/py.typed +0 -0
- venv/Lib/site-packages/pip/_vendor/idna/uts46data.py +8681 -0
- venv/Lib/site-packages/pip/_vendor/msgpack/__init__.py +55 -0
- venv/Lib/site-packages/pip/_vendor/msgpack/exceptions.py +48 -0
- venv/Lib/site-packages/pip/_vendor/msgpack/ext.py +170 -0
- venv/Lib/site-packages/pip/_vendor/msgpack/fallback.py +929 -0
- venv/Lib/site-packages/pip/_vendor/packaging/__init__.py +15 -0
- venv/Lib/site-packages/pip/_vendor/packaging/_elffile.py +109 -0
- venv/Lib/site-packages/pip/_vendor/packaging/_manylinux.py +262 -0
- venv/Lib/site-packages/pip/_vendor/packaging/_musllinux.py +85 -0
- venv/Lib/site-packages/pip/_vendor/packaging/_parser.py +353 -0
- venv/Lib/site-packages/pip/_vendor/packaging/_structures.py +61 -0
- venv/Lib/site-packages/pip/_vendor/packaging/_tokenizer.py +195 -0
- venv/Lib/site-packages/pip/_vendor/packaging/licenses/__init__.py +145 -0
- venv/Lib/site-packages/pip/_vendor/packaging/licenses/_spdx.py +759 -0
- venv/Lib/site-packages/pip/_vendor/packaging/markers.py +362 -0
- venv/Lib/site-packages/pip/_vendor/packaging/metadata.py +862 -0
- venv/Lib/site-packages/pip/_vendor/packaging/py.typed +0 -0
- venv/Lib/site-packages/pip/_vendor/packaging/requirements.py +91 -0
- venv/Lib/site-packages/pip/_vendor/packaging/specifiers.py +1019 -0
- venv/Lib/site-packages/pip/_vendor/packaging/tags.py +656 -0
- venv/Lib/site-packages/pip/_vendor/packaging/utils.py +163 -0
- venv/Lib/site-packages/pip/_vendor/packaging/version.py +582 -0
- venv/Lib/site-packages/pip/_vendor/pkg_resources/__init__.py +3676 -0
- venv/Lib/site-packages/pip/_vendor/platformdirs/__init__.py +631 -0
- venv/Lib/site-packages/pip/_vendor/platformdirs/__main__.py +55 -0
- venv/Lib/site-packages/pip/_vendor/platformdirs/android.py +249 -0
- venv/Lib/site-packages/pip/_vendor/platformdirs/api.py +299 -0
- venv/Lib/site-packages/pip/_vendor/platformdirs/macos.py +144 -0
- venv/Lib/site-packages/pip/_vendor/platformdirs/py.typed +0 -0
- venv/Lib/site-packages/pip/_vendor/platformdirs/unix.py +272 -0
- venv/Lib/site-packages/pip/_vendor/platformdirs/version.py +21 -0
- venv/Lib/site-packages/pip/_vendor/platformdirs/windows.py +272 -0
- venv/Lib/site-packages/pip/_vendor/pygments/__init__.py +82 -0
- venv/Lib/site-packages/pip/_vendor/pygments/__main__.py +17 -0
- venv/Lib/site-packages/pip/_vendor/pygments/console.py +70 -0
- venv/Lib/site-packages/pip/_vendor/pygments/filter.py +70 -0
- venv/Lib/site-packages/pip/_vendor/pygments/filters/__init__.py +940 -0
- venv/Lib/site-packages/pip/_vendor/pygments/formatter.py +129 -0
- venv/Lib/site-packages/pip/_vendor/pygments/formatters/__init__.py +157 -0
- venv/Lib/site-packages/pip/_vendor/pygments/formatters/_mapping.py +23 -0
- venv/Lib/site-packages/pip/_vendor/pygments/lexer.py +963 -0
- venv/Lib/site-packages/pip/_vendor/pygments/lexers/__init__.py +362 -0
- venv/Lib/site-packages/pip/_vendor/pygments/lexers/_mapping.py +602 -0
- venv/Lib/site-packages/pip/_vendor/pygments/lexers/python.py +1201 -0
- venv/Lib/site-packages/pip/_vendor/pygments/modeline.py +43 -0
- venv/Lib/site-packages/pip/_vendor/pygments/plugin.py +72 -0
- venv/Lib/site-packages/pip/_vendor/pygments/regexopt.py +91 -0
- venv/Lib/site-packages/pip/_vendor/pygments/scanner.py +104 -0
- venv/Lib/site-packages/pip/_vendor/pygments/sphinxext.py +247 -0
- venv/Lib/site-packages/pip/_vendor/pygments/style.py +203 -0
- venv/Lib/site-packages/pip/_vendor/pygments/styles/__init__.py +61 -0
- venv/Lib/site-packages/pip/_vendor/pygments/styles/_mapping.py +54 -0
- venv/Lib/site-packages/pip/_vendor/pygments/token.py +214 -0
- venv/Lib/site-packages/pip/_vendor/pygments/unistring.py +153 -0
- venv/Lib/site-packages/pip/_vendor/pygments/util.py +324 -0
- venv/Lib/site-packages/pip/_vendor/pyproject_hooks/__init__.py +31 -0
- venv/Lib/site-packages/pip/_vendor/pyproject_hooks/_impl.py +410 -0
- venv/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/__init__.py +21 -0
- venv/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py +389 -0
- venv/Lib/site-packages/pip/_vendor/pyproject_hooks/py.typed +0 -0
- venv/Lib/site-packages/pip/_vendor/requests/__init__.py +179 -0
- venv/Lib/site-packages/pip/_vendor/requests/__version__.py +14 -0
- venv/Lib/site-packages/pip/_vendor/requests/_internal_utils.py +50 -0
- venv/Lib/site-packages/pip/_vendor/requests/adapters.py +719 -0
- venv/Lib/site-packages/pip/_vendor/requests/api.py +157 -0
- venv/Lib/site-packages/pip/_vendor/requests/auth.py +314 -0
- venv/Lib/site-packages/pip/_vendor/requests/certs.py +17 -0
- venv/Lib/site-packages/pip/_vendor/requests/compat.py +90 -0
- venv/Lib/site-packages/pip/_vendor/requests/cookies.py +561 -0
- venv/Lib/site-packages/pip/_vendor/requests/exceptions.py +151 -0
- venv/Lib/site-packages/pip/_vendor/requests/help.py +127 -0
- venv/Lib/site-packages/pip/_vendor/requests/hooks.py +33 -0
- venv/Lib/site-packages/pip/_vendor/requests/models.py +1039 -0
- venv/Lib/site-packages/pip/_vendor/requests/packages.py +25 -0
- venv/Lib/site-packages/pip/_vendor/requests/sessions.py +831 -0
- venv/Lib/site-packages/pip/_vendor/requests/status_codes.py +128 -0
- venv/Lib/site-packages/pip/_vendor/requests/structures.py +99 -0
- venv/Lib/site-packages/pip/_vendor/requests/utils.py +1086 -0
- venv/Lib/site-packages/pip/_vendor/resolvelib/__init__.py +27 -0
- venv/Lib/site-packages/pip/_vendor/resolvelib/providers.py +196 -0
- venv/Lib/site-packages/pip/_vendor/resolvelib/py.typed +0 -0
- venv/Lib/site-packages/pip/_vendor/resolvelib/reporters.py +55 -0
- venv/Lib/site-packages/pip/_vendor/resolvelib/resolvers/__init__.py +27 -0
- venv/Lib/site-packages/pip/_vendor/resolvelib/resolvers/abstract.py +47 -0
- venv/Lib/site-packages/pip/_vendor/resolvelib/resolvers/criterion.py +48 -0
- venv/Lib/site-packages/pip/_vendor/resolvelib/resolvers/exceptions.py +57 -0
- venv/Lib/site-packages/pip/_vendor/resolvelib/resolvers/resolution.py +622 -0
- venv/Lib/site-packages/pip/_vendor/resolvelib/structs.py +209 -0
- venv/Lib/site-packages/pip/_vendor/rich/__init__.py +177 -0
- venv/Lib/site-packages/pip/_vendor/rich/__main__.py +245 -0
- venv/Lib/site-packages/pip/_vendor/rich/_cell_widths.py +454 -0
- venv/Lib/site-packages/pip/_vendor/rich/_emoji_codes.py +3610 -0
- venv/Lib/site-packages/pip/_vendor/rich/_emoji_replace.py +32 -0
- venv/Lib/site-packages/pip/_vendor/rich/_export_format.py +76 -0
- venv/Lib/site-packages/pip/_vendor/rich/_extension.py +10 -0
- venv/Lib/site-packages/pip/_vendor/rich/_fileno.py +24 -0
- venv/Lib/site-packages/pip/_vendor/rich/_inspect.py +268 -0
- venv/Lib/site-packages/pip/_vendor/rich/_log_render.py +94 -0
- venv/Lib/site-packages/pip/_vendor/rich/_loop.py +43 -0
- venv/Lib/site-packages/pip/_vendor/rich/_null_file.py +69 -0
- venv/Lib/site-packages/pip/_vendor/rich/_palettes.py +309 -0
- venv/Lib/site-packages/pip/_vendor/rich/_pick.py +17 -0
- venv/Lib/site-packages/pip/_vendor/rich/_ratio.py +153 -0
- venv/Lib/site-packages/pip/_vendor/rich/_spinners.py +482 -0
- venv/Lib/site-packages/pip/_vendor/rich/_stack.py +16 -0
- venv/Lib/site-packages/pip/_vendor/rich/_timer.py +19 -0
- venv/Lib/site-packages/pip/_vendor/rich/_win32_console.py +661 -0
- venv/Lib/site-packages/pip/_vendor/rich/_windows.py +71 -0
- venv/Lib/site-packages/pip/_vendor/rich/_windows_renderer.py +56 -0
- venv/Lib/site-packages/pip/_vendor/rich/_wrap.py +93 -0
- venv/Lib/site-packages/pip/_vendor/rich/abc.py +33 -0
- venv/Lib/site-packages/pip/_vendor/rich/align.py +306 -0
- venv/Lib/site-packages/pip/_vendor/rich/ansi.py +241 -0
- venv/Lib/site-packages/pip/_vendor/rich/bar.py +93 -0
- venv/Lib/site-packages/pip/_vendor/rich/box.py +474 -0
- venv/Lib/site-packages/pip/_vendor/rich/cells.py +174 -0
- venv/Lib/site-packages/pip/_vendor/rich/color.py +621 -0
- venv/Lib/site-packages/pip/_vendor/rich/color_triplet.py +38 -0
- venv/Lib/site-packages/pip/_vendor/rich/columns.py +187 -0
- venv/Lib/site-packages/pip/_vendor/rich/console.py +2680 -0
- venv/Lib/site-packages/pip/_vendor/rich/constrain.py +37 -0
- venv/Lib/site-packages/pip/_vendor/rich/containers.py +167 -0
- venv/Lib/site-packages/pip/_vendor/rich/control.py +219 -0
- venv/Lib/site-packages/pip/_vendor/rich/default_styles.py +193 -0
- venv/Lib/site-packages/pip/_vendor/rich/diagnose.py +39 -0
- venv/Lib/site-packages/pip/_vendor/rich/emoji.py +91 -0
- venv/Lib/site-packages/pip/_vendor/rich/errors.py +34 -0
- venv/Lib/site-packages/pip/_vendor/rich/file_proxy.py +57 -0
- venv/Lib/site-packages/pip/_vendor/rich/filesize.py +88 -0
- venv/Lib/site-packages/pip/_vendor/rich/highlighter.py +232 -0
- venv/Lib/site-packages/pip/_vendor/rich/json.py +139 -0
- venv/Lib/site-packages/pip/_vendor/rich/jupyter.py +101 -0
- venv/Lib/site-packages/pip/_vendor/rich/layout.py +442 -0
- venv/Lib/site-packages/pip/_vendor/rich/live.py +400 -0
- venv/Lib/site-packages/pip/_vendor/rich/live_render.py +106 -0
- venv/Lib/site-packages/pip/_vendor/rich/logging.py +297 -0
- venv/Lib/site-packages/pip/_vendor/rich/markup.py +251 -0
- venv/Lib/site-packages/pip/_vendor/rich/measure.py +151 -0
- venv/Lib/site-packages/pip/_vendor/rich/padding.py +141 -0
- venv/Lib/site-packages/pip/_vendor/rich/pager.py +34 -0
- venv/Lib/site-packages/pip/_vendor/rich/palette.py +100 -0
- venv/Lib/site-packages/pip/_vendor/rich/panel.py +317 -0
- venv/Lib/site-packages/pip/_vendor/rich/pretty.py +1016 -0
- venv/Lib/site-packages/pip/_vendor/rich/progress.py +1715 -0
- venv/Lib/site-packages/pip/_vendor/rich/progress_bar.py +223 -0
- venv/Lib/site-packages/pip/_vendor/rich/prompt.py +400 -0
- venv/Lib/site-packages/pip/_vendor/rich/protocol.py +42 -0
- venv/Lib/site-packages/pip/_vendor/rich/py.typed +0 -0
- venv/Lib/site-packages/pip/_vendor/rich/region.py +10 -0
- venv/Lib/site-packages/pip/_vendor/rich/repr.py +149 -0
- venv/Lib/site-packages/pip/_vendor/rich/rule.py +130 -0
- venv/Lib/site-packages/pip/_vendor/rich/scope.py +86 -0
- venv/Lib/site-packages/pip/_vendor/rich/screen.py +54 -0
- venv/Lib/site-packages/pip/_vendor/rich/segment.py +752 -0
- venv/Lib/site-packages/pip/_vendor/rich/spinner.py +132 -0
- venv/Lib/site-packages/pip/_vendor/rich/status.py +131 -0
- venv/Lib/site-packages/pip/_vendor/rich/style.py +796 -0
- venv/Lib/site-packages/pip/_vendor/rich/styled.py +42 -0
- venv/Lib/site-packages/pip/_vendor/rich/syntax.py +985 -0
- venv/Lib/site-packages/pip/_vendor/rich/table.py +1006 -0
- venv/Lib/site-packages/pip/_vendor/rich/terminal_theme.py +153 -0
- venv/Lib/site-packages/pip/_vendor/rich/text.py +1361 -0
- venv/Lib/site-packages/pip/_vendor/rich/theme.py +115 -0
- venv/Lib/site-packages/pip/_vendor/rich/themes.py +5 -0
- venv/Lib/site-packages/pip/_vendor/rich/traceback.py +899 -0
- venv/Lib/site-packages/pip/_vendor/rich/tree.py +257 -0
- venv/Lib/site-packages/pip/_vendor/tomli/__init__.py +8 -0
- venv/Lib/site-packages/pip/_vendor/tomli/_parser.py +770 -0
- venv/Lib/site-packages/pip/_vendor/tomli/_re.py +112 -0
- venv/Lib/site-packages/pip/_vendor/tomli/_types.py +10 -0
- venv/Lib/site-packages/pip/_vendor/tomli/py.typed +1 -0
- venv/Lib/site-packages/pip/_vendor/tomli_w/__init__.py +4 -0
- venv/Lib/site-packages/pip/_vendor/tomli_w/_writer.py +229 -0
- venv/Lib/site-packages/pip/_vendor/tomli_w/py.typed +1 -0
- venv/Lib/site-packages/pip/_vendor/truststore/__init__.py +36 -0
- venv/Lib/site-packages/pip/_vendor/truststore/_api.py +333 -0
- venv/Lib/site-packages/pip/_vendor/truststore/_macos.py +571 -0
- venv/Lib/site-packages/pip/_vendor/truststore/_openssl.py +66 -0
- venv/Lib/site-packages/pip/_vendor/truststore/_ssl_constants.py +31 -0
- venv/Lib/site-packages/pip/_vendor/truststore/_windows.py +567 -0
- venv/Lib/site-packages/pip/_vendor/truststore/py.typed +0 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/__init__.py +102 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/_collections.py +355 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/_version.py +2 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/connection.py +572 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/connectionpool.py +1140 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__init__.py +0 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py +36 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py +0 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +519 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +397 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/contrib/appengine.py +314 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py +130 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +518 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/contrib/securetransport.py +920 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/contrib/socks.py +216 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/exceptions.py +323 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/fields.py +274 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/filepost.py +98 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/packages/__init__.py +0 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py +0 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py +51 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py +155 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/packages/six.py +1076 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/poolmanager.py +540 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/request.py +191 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/response.py +879 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/util/__init__.py +49 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/util/connection.py +149 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/util/proxy.py +57 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/util/queue.py +22 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/util/request.py +137 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/util/response.py +107 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/util/retry.py +622 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/util/ssl_.py +504 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py +159 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/util/ssltransport.py +221 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/util/timeout.py +271 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/util/url.py +435 -0
- venv/Lib/site-packages/pip/_vendor/urllib3/util/wait.py +152 -0
- venv/Lib/site-packages/pip/py.typed +4 -0
- cli_ih-0.6.3.dist-info/RECORD +0 -8
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import logging
|
|
4
|
+
import os
|
|
5
|
+
import re
|
|
6
|
+
import site
|
|
7
|
+
import sys
|
|
8
|
+
|
|
9
|
+
logger = logging.getLogger(__name__)
|
|
10
|
+
_INCLUDE_SYSTEM_SITE_PACKAGES_REGEX = re.compile(
|
|
11
|
+
r"include-system-site-packages\s*=\s*(?P<value>true|false)"
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def _running_under_venv() -> bool:
|
|
16
|
+
"""Checks if sys.base_prefix and sys.prefix match.
|
|
17
|
+
|
|
18
|
+
This handles PEP 405 compliant virtual environments.
|
|
19
|
+
"""
|
|
20
|
+
return sys.prefix != getattr(sys, "base_prefix", sys.prefix)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def _running_under_legacy_virtualenv() -> bool:
|
|
24
|
+
"""Checks if sys.real_prefix is set.
|
|
25
|
+
|
|
26
|
+
This handles virtual environments created with pypa's virtualenv.
|
|
27
|
+
"""
|
|
28
|
+
# pypa/virtualenv case
|
|
29
|
+
return hasattr(sys, "real_prefix")
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def running_under_virtualenv() -> bool:
|
|
33
|
+
"""True if we're running inside a virtual environment, False otherwise."""
|
|
34
|
+
return _running_under_venv() or _running_under_legacy_virtualenv()
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def _get_pyvenv_cfg_lines() -> list[str] | None:
|
|
38
|
+
"""Reads {sys.prefix}/pyvenv.cfg and returns its contents as list of lines
|
|
39
|
+
|
|
40
|
+
Returns None, if it could not read/access the file.
|
|
41
|
+
"""
|
|
42
|
+
pyvenv_cfg_file = os.path.join(sys.prefix, "pyvenv.cfg")
|
|
43
|
+
try:
|
|
44
|
+
# Although PEP 405 does not specify, the built-in venv module always
|
|
45
|
+
# writes with UTF-8. (pypa/pip#8717)
|
|
46
|
+
with open(pyvenv_cfg_file, encoding="utf-8") as f:
|
|
47
|
+
return f.read().splitlines() # avoids trailing newlines
|
|
48
|
+
except OSError:
|
|
49
|
+
return None
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def _no_global_under_venv() -> bool:
|
|
53
|
+
"""Check `{sys.prefix}/pyvenv.cfg` for system site-packages inclusion
|
|
54
|
+
|
|
55
|
+
PEP 405 specifies that when system site-packages are not supposed to be
|
|
56
|
+
visible from a virtual environment, `pyvenv.cfg` must contain the following
|
|
57
|
+
line:
|
|
58
|
+
|
|
59
|
+
include-system-site-packages = false
|
|
60
|
+
|
|
61
|
+
Additionally, log a warning if accessing the file fails.
|
|
62
|
+
"""
|
|
63
|
+
cfg_lines = _get_pyvenv_cfg_lines()
|
|
64
|
+
if cfg_lines is None:
|
|
65
|
+
# We're not in a "sane" venv, so assume there is no system
|
|
66
|
+
# site-packages access (since that's PEP 405's default state).
|
|
67
|
+
logger.warning(
|
|
68
|
+
"Could not access 'pyvenv.cfg' despite a virtual environment "
|
|
69
|
+
"being active. Assuming global site-packages is not accessible "
|
|
70
|
+
"in this environment."
|
|
71
|
+
)
|
|
72
|
+
return True
|
|
73
|
+
|
|
74
|
+
for line in cfg_lines:
|
|
75
|
+
match = _INCLUDE_SYSTEM_SITE_PACKAGES_REGEX.match(line)
|
|
76
|
+
if match is not None and match.group("value") == "false":
|
|
77
|
+
return True
|
|
78
|
+
return False
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
def _no_global_under_legacy_virtualenv() -> bool:
|
|
82
|
+
"""Check if "no-global-site-packages.txt" exists beside site.py
|
|
83
|
+
|
|
84
|
+
This mirrors logic in pypa/virtualenv for determining whether system
|
|
85
|
+
site-packages are visible in the virtual environment.
|
|
86
|
+
"""
|
|
87
|
+
site_mod_dir = os.path.dirname(os.path.abspath(site.__file__))
|
|
88
|
+
no_global_site_packages_file = os.path.join(
|
|
89
|
+
site_mod_dir,
|
|
90
|
+
"no-global-site-packages.txt",
|
|
91
|
+
)
|
|
92
|
+
return os.path.exists(no_global_site_packages_file)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def virtualenv_no_global() -> bool:
|
|
96
|
+
"""Returns a boolean, whether running in venv with no system site-packages."""
|
|
97
|
+
# PEP 405 compliance needs to be checked first since virtualenv >=20 would
|
|
98
|
+
# return True for both checks, but is only able to use the PEP 405 config.
|
|
99
|
+
if _running_under_venv():
|
|
100
|
+
return _no_global_under_venv()
|
|
101
|
+
|
|
102
|
+
if _running_under_legacy_virtualenv():
|
|
103
|
+
return _no_global_under_legacy_virtualenv()
|
|
104
|
+
|
|
105
|
+
return False
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"""Support functions for working with wheel files."""
|
|
2
|
+
|
|
3
|
+
import logging
|
|
4
|
+
from email.message import Message
|
|
5
|
+
from email.parser import Parser
|
|
6
|
+
from zipfile import BadZipFile, ZipFile
|
|
7
|
+
|
|
8
|
+
from pip._vendor.packaging.utils import canonicalize_name
|
|
9
|
+
|
|
10
|
+
from pip._internal.exceptions import UnsupportedWheel
|
|
11
|
+
|
|
12
|
+
VERSION_COMPATIBLE = (1, 0)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
logger = logging.getLogger(__name__)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def parse_wheel(wheel_zip: ZipFile, name: str) -> tuple[str, Message]:
|
|
19
|
+
"""Extract information from the provided wheel, ensuring it meets basic
|
|
20
|
+
standards.
|
|
21
|
+
|
|
22
|
+
Returns the name of the .dist-info directory and the parsed WHEEL metadata.
|
|
23
|
+
"""
|
|
24
|
+
try:
|
|
25
|
+
info_dir = wheel_dist_info_dir(wheel_zip, name)
|
|
26
|
+
metadata = wheel_metadata(wheel_zip, info_dir)
|
|
27
|
+
version = wheel_version(metadata)
|
|
28
|
+
except UnsupportedWheel as e:
|
|
29
|
+
raise UnsupportedWheel(f"{name} has an invalid wheel, {e}")
|
|
30
|
+
|
|
31
|
+
check_compatibility(version, name)
|
|
32
|
+
|
|
33
|
+
return info_dir, metadata
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def wheel_dist_info_dir(source: ZipFile, name: str) -> str:
|
|
37
|
+
"""Returns the name of the contained .dist-info directory.
|
|
38
|
+
|
|
39
|
+
Raises AssertionError or UnsupportedWheel if not found, >1 found, or
|
|
40
|
+
it doesn't match the provided name.
|
|
41
|
+
"""
|
|
42
|
+
# Zip file path separators must be /
|
|
43
|
+
subdirs = {p.split("/", 1)[0] for p in source.namelist()}
|
|
44
|
+
|
|
45
|
+
info_dirs = [s for s in subdirs if s.endswith(".dist-info")]
|
|
46
|
+
|
|
47
|
+
if not info_dirs:
|
|
48
|
+
raise UnsupportedWheel(".dist-info directory not found")
|
|
49
|
+
|
|
50
|
+
if len(info_dirs) > 1:
|
|
51
|
+
raise UnsupportedWheel(
|
|
52
|
+
"multiple .dist-info directories found: {}".format(", ".join(info_dirs))
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
info_dir = info_dirs[0]
|
|
56
|
+
|
|
57
|
+
info_dir_name = canonicalize_name(info_dir)
|
|
58
|
+
canonical_name = canonicalize_name(name)
|
|
59
|
+
if not info_dir_name.startswith(canonical_name):
|
|
60
|
+
raise UnsupportedWheel(
|
|
61
|
+
f".dist-info directory {info_dir!r} does not start with {canonical_name!r}"
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
return info_dir
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def read_wheel_metadata_file(source: ZipFile, path: str) -> bytes:
|
|
68
|
+
try:
|
|
69
|
+
return source.read(path)
|
|
70
|
+
# BadZipFile for general corruption, KeyError for missing entry,
|
|
71
|
+
# and RuntimeError for password-protected files
|
|
72
|
+
except (BadZipFile, KeyError, RuntimeError) as e:
|
|
73
|
+
raise UnsupportedWheel(f"could not read {path!r} file: {e!r}")
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
def wheel_metadata(source: ZipFile, dist_info_dir: str) -> Message:
|
|
77
|
+
"""Return the WHEEL metadata of an extracted wheel, if possible.
|
|
78
|
+
Otherwise, raise UnsupportedWheel.
|
|
79
|
+
"""
|
|
80
|
+
path = f"{dist_info_dir}/WHEEL"
|
|
81
|
+
# Zip file path separators must be /
|
|
82
|
+
wheel_contents = read_wheel_metadata_file(source, path)
|
|
83
|
+
|
|
84
|
+
try:
|
|
85
|
+
wheel_text = wheel_contents.decode()
|
|
86
|
+
except UnicodeDecodeError as e:
|
|
87
|
+
raise UnsupportedWheel(f"error decoding {path!r}: {e!r}")
|
|
88
|
+
|
|
89
|
+
# FeedParser (used by Parser) does not raise any exceptions. The returned
|
|
90
|
+
# message may have .defects populated, but for backwards-compatibility we
|
|
91
|
+
# currently ignore them.
|
|
92
|
+
return Parser().parsestr(wheel_text)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def wheel_version(wheel_data: Message) -> tuple[int, ...]:
|
|
96
|
+
"""Given WHEEL metadata, return the parsed Wheel-Version.
|
|
97
|
+
Otherwise, raise UnsupportedWheel.
|
|
98
|
+
"""
|
|
99
|
+
version_text = wheel_data["Wheel-Version"]
|
|
100
|
+
if version_text is None:
|
|
101
|
+
raise UnsupportedWheel("WHEEL is missing Wheel-Version")
|
|
102
|
+
|
|
103
|
+
version = version_text.strip()
|
|
104
|
+
|
|
105
|
+
try:
|
|
106
|
+
return tuple(map(int, version.split(".")))
|
|
107
|
+
except ValueError:
|
|
108
|
+
raise UnsupportedWheel(f"invalid Wheel-Version: {version!r}")
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
def check_compatibility(version: tuple[int, ...], name: str) -> None:
|
|
112
|
+
"""Raises errors or warns if called with an incompatible Wheel-Version.
|
|
113
|
+
|
|
114
|
+
pip should refuse to install a Wheel-Version that's a major series
|
|
115
|
+
ahead of what it's compatible with (e.g 2.0 > 1.1); and warn when
|
|
116
|
+
installing a version only minor version ahead (e.g 1.2 > 1.1).
|
|
117
|
+
|
|
118
|
+
version: a 2-tuple representing a Wheel-Version (Major, Minor)
|
|
119
|
+
name: name of wheel or package to raise exception about
|
|
120
|
+
|
|
121
|
+
:raises UnsupportedWheel: when an incompatible Wheel-Version is given
|
|
122
|
+
"""
|
|
123
|
+
if version[0] > VERSION_COMPATIBLE[0]:
|
|
124
|
+
raise UnsupportedWheel(
|
|
125
|
+
"{}'s Wheel-Version ({}) is not compatible with this version "
|
|
126
|
+
"of pip".format(name, ".".join(map(str, version)))
|
|
127
|
+
)
|
|
128
|
+
elif version > VERSION_COMPATIBLE:
|
|
129
|
+
logger.warning(
|
|
130
|
+
"Installing from a newer Wheel-Version (%s)",
|
|
131
|
+
".".join(map(str, version)),
|
|
132
|
+
)
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Expose a limited set of classes and functions so callers outside of
|
|
2
|
+
# the vcs package don't need to import deeper than `pip._internal.vcs`.
|
|
3
|
+
# (The test directory may still need to import from a vcs sub-package.)
|
|
4
|
+
# Import all vcs modules to register each VCS in the VcsSupport object.
|
|
5
|
+
import pip._internal.vcs.bazaar
|
|
6
|
+
import pip._internal.vcs.git
|
|
7
|
+
import pip._internal.vcs.mercurial
|
|
8
|
+
import pip._internal.vcs.subversion # noqa: F401
|
|
9
|
+
from pip._internal.vcs.versioncontrol import ( # noqa: F401
|
|
10
|
+
RemoteNotFoundError,
|
|
11
|
+
RemoteNotValidError,
|
|
12
|
+
is_url,
|
|
13
|
+
make_vcs_requirement_url,
|
|
14
|
+
vcs,
|
|
15
|
+
)
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import logging
|
|
4
|
+
|
|
5
|
+
from pip._internal.utils.misc import HiddenText, display_path
|
|
6
|
+
from pip._internal.utils.subprocess import make_command
|
|
7
|
+
from pip._internal.utils.urls import path_to_url
|
|
8
|
+
from pip._internal.vcs.versioncontrol import (
|
|
9
|
+
AuthInfo,
|
|
10
|
+
RemoteNotFoundError,
|
|
11
|
+
RevOptions,
|
|
12
|
+
VersionControl,
|
|
13
|
+
vcs,
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
logger = logging.getLogger(__name__)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class Bazaar(VersionControl):
|
|
20
|
+
name = "bzr"
|
|
21
|
+
dirname = ".bzr"
|
|
22
|
+
repo_name = "branch"
|
|
23
|
+
schemes = (
|
|
24
|
+
"bzr+http",
|
|
25
|
+
"bzr+https",
|
|
26
|
+
"bzr+ssh",
|
|
27
|
+
"bzr+sftp",
|
|
28
|
+
"bzr+ftp",
|
|
29
|
+
"bzr+lp",
|
|
30
|
+
"bzr+file",
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
@staticmethod
|
|
34
|
+
def get_base_rev_args(rev: str) -> list[str]:
|
|
35
|
+
return ["-r", rev]
|
|
36
|
+
|
|
37
|
+
def fetch_new(
|
|
38
|
+
self, dest: str, url: HiddenText, rev_options: RevOptions, verbosity: int
|
|
39
|
+
) -> None:
|
|
40
|
+
rev_display = rev_options.to_display()
|
|
41
|
+
logger.info(
|
|
42
|
+
"Checking out %s%s to %s",
|
|
43
|
+
url,
|
|
44
|
+
rev_display,
|
|
45
|
+
display_path(dest),
|
|
46
|
+
)
|
|
47
|
+
if verbosity <= 0:
|
|
48
|
+
flags = ["--quiet"]
|
|
49
|
+
elif verbosity == 1:
|
|
50
|
+
flags = []
|
|
51
|
+
else:
|
|
52
|
+
flags = [f"-{'v'*verbosity}"]
|
|
53
|
+
cmd_args = make_command(
|
|
54
|
+
"checkout", "--lightweight", *flags, rev_options.to_args(), url, dest
|
|
55
|
+
)
|
|
56
|
+
self.run_command(cmd_args)
|
|
57
|
+
|
|
58
|
+
def switch(
|
|
59
|
+
self,
|
|
60
|
+
dest: str,
|
|
61
|
+
url: HiddenText,
|
|
62
|
+
rev_options: RevOptions,
|
|
63
|
+
verbosity: int = 0,
|
|
64
|
+
) -> None:
|
|
65
|
+
self.run_command(make_command("switch", url), cwd=dest)
|
|
66
|
+
|
|
67
|
+
def update(
|
|
68
|
+
self,
|
|
69
|
+
dest: str,
|
|
70
|
+
url: HiddenText,
|
|
71
|
+
rev_options: RevOptions,
|
|
72
|
+
verbosity: int = 0,
|
|
73
|
+
) -> None:
|
|
74
|
+
flags = []
|
|
75
|
+
|
|
76
|
+
if verbosity <= 0:
|
|
77
|
+
flags.append("-q")
|
|
78
|
+
|
|
79
|
+
output = self.run_command(
|
|
80
|
+
make_command("info"), show_stdout=False, stdout_only=True, cwd=dest
|
|
81
|
+
)
|
|
82
|
+
if output.startswith("Standalone "):
|
|
83
|
+
# Older versions of pip used to create standalone branches.
|
|
84
|
+
# Convert the standalone branch to a checkout by calling "bzr bind".
|
|
85
|
+
cmd_args = make_command("bind", *flags, url)
|
|
86
|
+
self.run_command(cmd_args, cwd=dest)
|
|
87
|
+
|
|
88
|
+
cmd_args = make_command("update", *flags, rev_options.to_args())
|
|
89
|
+
self.run_command(cmd_args, cwd=dest)
|
|
90
|
+
|
|
91
|
+
@classmethod
|
|
92
|
+
def get_url_rev_and_auth(cls, url: str) -> tuple[str, str | None, AuthInfo]:
|
|
93
|
+
# hotfix the URL scheme after removing bzr+ from bzr+ssh:// re-add it
|
|
94
|
+
url, rev, user_pass = super().get_url_rev_and_auth(url)
|
|
95
|
+
if url.startswith("ssh://"):
|
|
96
|
+
url = "bzr+" + url
|
|
97
|
+
return url, rev, user_pass
|
|
98
|
+
|
|
99
|
+
@classmethod
|
|
100
|
+
def get_remote_url(cls, location: str) -> str:
|
|
101
|
+
urls = cls.run_command(
|
|
102
|
+
["info"], show_stdout=False, stdout_only=True, cwd=location
|
|
103
|
+
)
|
|
104
|
+
for line in urls.splitlines():
|
|
105
|
+
line = line.strip()
|
|
106
|
+
for x in ("checkout of branch: ", "parent branch: "):
|
|
107
|
+
if line.startswith(x):
|
|
108
|
+
repo = line.split(x)[1]
|
|
109
|
+
if cls._is_local_repository(repo):
|
|
110
|
+
return path_to_url(repo)
|
|
111
|
+
return repo
|
|
112
|
+
raise RemoteNotFoundError
|
|
113
|
+
|
|
114
|
+
@classmethod
|
|
115
|
+
def get_revision(cls, location: str) -> str:
|
|
116
|
+
revision = cls.run_command(
|
|
117
|
+
["revno"],
|
|
118
|
+
show_stdout=False,
|
|
119
|
+
stdout_only=True,
|
|
120
|
+
cwd=location,
|
|
121
|
+
)
|
|
122
|
+
return revision.splitlines()[-1]
|
|
123
|
+
|
|
124
|
+
@classmethod
|
|
125
|
+
def is_commit_id_equal(cls, dest: str, name: str | None) -> bool:
|
|
126
|
+
"""Always assume the versions don't match"""
|
|
127
|
+
return False
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
vcs.register(Bazaar)
|