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,334 @@
|
|
|
1
|
+
"""Orchestrator for building wheels from InstallRequirements."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import logging
|
|
6
|
+
import os.path
|
|
7
|
+
import re
|
|
8
|
+
import shutil
|
|
9
|
+
from collections.abc import Iterable
|
|
10
|
+
|
|
11
|
+
from pip._vendor.packaging.utils import canonicalize_name, canonicalize_version
|
|
12
|
+
from pip._vendor.packaging.version import InvalidVersion, Version
|
|
13
|
+
|
|
14
|
+
from pip._internal.cache import WheelCache
|
|
15
|
+
from pip._internal.exceptions import InvalidWheelFilename, UnsupportedWheel
|
|
16
|
+
from pip._internal.metadata import FilesystemWheel, get_wheel_distribution
|
|
17
|
+
from pip._internal.models.link import Link
|
|
18
|
+
from pip._internal.models.wheel import Wheel
|
|
19
|
+
from pip._internal.operations.build.wheel import build_wheel_pep517
|
|
20
|
+
from pip._internal.operations.build.wheel_editable import build_wheel_editable
|
|
21
|
+
from pip._internal.operations.build.wheel_legacy import build_wheel_legacy
|
|
22
|
+
from pip._internal.req.req_install import InstallRequirement
|
|
23
|
+
from pip._internal.utils.logging import indent_log
|
|
24
|
+
from pip._internal.utils.misc import ensure_dir, hash_file
|
|
25
|
+
from pip._internal.utils.setuptools_build import make_setuptools_clean_args
|
|
26
|
+
from pip._internal.utils.subprocess import call_subprocess
|
|
27
|
+
from pip._internal.utils.temp_dir import TempDirectory
|
|
28
|
+
from pip._internal.utils.urls import path_to_url
|
|
29
|
+
from pip._internal.vcs import vcs
|
|
30
|
+
|
|
31
|
+
logger = logging.getLogger(__name__)
|
|
32
|
+
|
|
33
|
+
_egg_info_re = re.compile(r"([a-z0-9_.]+)-([a-z0-9_.!+-]+)", re.IGNORECASE)
|
|
34
|
+
|
|
35
|
+
BuildResult = tuple[list[InstallRequirement], list[InstallRequirement]]
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def _contains_egg_info(s: str) -> bool:
|
|
39
|
+
"""Determine whether the string looks like an egg_info.
|
|
40
|
+
|
|
41
|
+
:param s: The string to parse. E.g. foo-2.1
|
|
42
|
+
"""
|
|
43
|
+
return bool(_egg_info_re.search(s))
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def _should_build(
|
|
47
|
+
req: InstallRequirement,
|
|
48
|
+
) -> bool:
|
|
49
|
+
"""Return whether an InstallRequirement should be built into a wheel."""
|
|
50
|
+
assert not req.constraint
|
|
51
|
+
|
|
52
|
+
if req.is_wheel:
|
|
53
|
+
return False
|
|
54
|
+
|
|
55
|
+
assert req.source_dir
|
|
56
|
+
|
|
57
|
+
if req.editable:
|
|
58
|
+
# we only build PEP 660 editable requirements
|
|
59
|
+
return req.supports_pyproject_editable
|
|
60
|
+
|
|
61
|
+
return True
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def should_build_for_install_command(
|
|
65
|
+
req: InstallRequirement,
|
|
66
|
+
) -> bool:
|
|
67
|
+
return _should_build(req)
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
def _should_cache(
|
|
71
|
+
req: InstallRequirement,
|
|
72
|
+
) -> bool | None:
|
|
73
|
+
"""
|
|
74
|
+
Return whether a built InstallRequirement can be stored in the persistent
|
|
75
|
+
wheel cache, assuming the wheel cache is available, and _should_build()
|
|
76
|
+
has determined a wheel needs to be built.
|
|
77
|
+
"""
|
|
78
|
+
if req.editable or not req.source_dir:
|
|
79
|
+
# never cache editable requirements
|
|
80
|
+
return False
|
|
81
|
+
|
|
82
|
+
if req.link and req.link.is_vcs:
|
|
83
|
+
# VCS checkout. Do not cache
|
|
84
|
+
# unless it points to an immutable commit hash.
|
|
85
|
+
assert not req.editable
|
|
86
|
+
assert req.source_dir
|
|
87
|
+
vcs_backend = vcs.get_backend_for_scheme(req.link.scheme)
|
|
88
|
+
assert vcs_backend
|
|
89
|
+
if vcs_backend.is_immutable_rev_checkout(req.link.url, req.source_dir):
|
|
90
|
+
return True
|
|
91
|
+
return False
|
|
92
|
+
|
|
93
|
+
assert req.link
|
|
94
|
+
base, ext = req.link.splitext()
|
|
95
|
+
if _contains_egg_info(base):
|
|
96
|
+
return True
|
|
97
|
+
|
|
98
|
+
# Otherwise, do not cache.
|
|
99
|
+
return False
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def _get_cache_dir(
|
|
103
|
+
req: InstallRequirement,
|
|
104
|
+
wheel_cache: WheelCache,
|
|
105
|
+
) -> str:
|
|
106
|
+
"""Return the persistent or temporary cache directory where the built
|
|
107
|
+
wheel need to be stored.
|
|
108
|
+
"""
|
|
109
|
+
cache_available = bool(wheel_cache.cache_dir)
|
|
110
|
+
assert req.link
|
|
111
|
+
if cache_available and _should_cache(req):
|
|
112
|
+
cache_dir = wheel_cache.get_path_for_link(req.link)
|
|
113
|
+
else:
|
|
114
|
+
cache_dir = wheel_cache.get_ephem_path_for_link(req.link)
|
|
115
|
+
return cache_dir
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def _verify_one(req: InstallRequirement, wheel_path: str) -> None:
|
|
119
|
+
canonical_name = canonicalize_name(req.name or "")
|
|
120
|
+
w = Wheel(os.path.basename(wheel_path))
|
|
121
|
+
if canonicalize_name(w.name) != canonical_name:
|
|
122
|
+
raise InvalidWheelFilename(
|
|
123
|
+
f"Wheel has unexpected file name: expected {canonical_name!r}, "
|
|
124
|
+
f"got {w.name!r}",
|
|
125
|
+
)
|
|
126
|
+
dist = get_wheel_distribution(FilesystemWheel(wheel_path), canonical_name)
|
|
127
|
+
dist_verstr = str(dist.version)
|
|
128
|
+
if canonicalize_version(dist_verstr) != canonicalize_version(w.version):
|
|
129
|
+
raise InvalidWheelFilename(
|
|
130
|
+
f"Wheel has unexpected file name: expected {dist_verstr!r}, "
|
|
131
|
+
f"got {w.version!r}",
|
|
132
|
+
)
|
|
133
|
+
metadata_version_value = dist.metadata_version
|
|
134
|
+
if metadata_version_value is None:
|
|
135
|
+
raise UnsupportedWheel("Missing Metadata-Version")
|
|
136
|
+
try:
|
|
137
|
+
metadata_version = Version(metadata_version_value)
|
|
138
|
+
except InvalidVersion:
|
|
139
|
+
msg = f"Invalid Metadata-Version: {metadata_version_value}"
|
|
140
|
+
raise UnsupportedWheel(msg)
|
|
141
|
+
if metadata_version >= Version("1.2") and not isinstance(dist.version, Version):
|
|
142
|
+
raise UnsupportedWheel(
|
|
143
|
+
f"Metadata 1.2 mandates PEP 440 version, but {dist_verstr!r} is not"
|
|
144
|
+
)
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
def _build_one(
|
|
148
|
+
req: InstallRequirement,
|
|
149
|
+
output_dir: str,
|
|
150
|
+
verify: bool,
|
|
151
|
+
build_options: list[str],
|
|
152
|
+
global_options: list[str],
|
|
153
|
+
editable: bool,
|
|
154
|
+
) -> str | None:
|
|
155
|
+
"""Build one wheel.
|
|
156
|
+
|
|
157
|
+
:return: The filename of the built wheel, or None if the build failed.
|
|
158
|
+
"""
|
|
159
|
+
artifact = "editable" if editable else "wheel"
|
|
160
|
+
try:
|
|
161
|
+
ensure_dir(output_dir)
|
|
162
|
+
except OSError as e:
|
|
163
|
+
logger.warning(
|
|
164
|
+
"Building %s for %s failed: %s",
|
|
165
|
+
artifact,
|
|
166
|
+
req.name,
|
|
167
|
+
e,
|
|
168
|
+
)
|
|
169
|
+
return None
|
|
170
|
+
|
|
171
|
+
# Install build deps into temporary directory (PEP 518)
|
|
172
|
+
with req.build_env:
|
|
173
|
+
wheel_path = _build_one_inside_env(
|
|
174
|
+
req, output_dir, build_options, global_options, editable
|
|
175
|
+
)
|
|
176
|
+
if wheel_path and verify:
|
|
177
|
+
try:
|
|
178
|
+
_verify_one(req, wheel_path)
|
|
179
|
+
except (InvalidWheelFilename, UnsupportedWheel) as e:
|
|
180
|
+
logger.warning("Built %s for %s is invalid: %s", artifact, req.name, e)
|
|
181
|
+
return None
|
|
182
|
+
return wheel_path
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
def _build_one_inside_env(
|
|
186
|
+
req: InstallRequirement,
|
|
187
|
+
output_dir: str,
|
|
188
|
+
build_options: list[str],
|
|
189
|
+
global_options: list[str],
|
|
190
|
+
editable: bool,
|
|
191
|
+
) -> str | None:
|
|
192
|
+
with TempDirectory(kind="wheel") as temp_dir:
|
|
193
|
+
assert req.name
|
|
194
|
+
if req.use_pep517:
|
|
195
|
+
assert req.metadata_directory
|
|
196
|
+
assert req.pep517_backend
|
|
197
|
+
if global_options:
|
|
198
|
+
logger.warning(
|
|
199
|
+
"Ignoring --global-option when building %s using PEP 517", req.name
|
|
200
|
+
)
|
|
201
|
+
if build_options:
|
|
202
|
+
logger.warning(
|
|
203
|
+
"Ignoring --build-option when building %s using PEP 517", req.name
|
|
204
|
+
)
|
|
205
|
+
if editable:
|
|
206
|
+
wheel_path = build_wheel_editable(
|
|
207
|
+
name=req.name,
|
|
208
|
+
backend=req.pep517_backend,
|
|
209
|
+
metadata_directory=req.metadata_directory,
|
|
210
|
+
tempd=temp_dir.path,
|
|
211
|
+
)
|
|
212
|
+
else:
|
|
213
|
+
wheel_path = build_wheel_pep517(
|
|
214
|
+
name=req.name,
|
|
215
|
+
backend=req.pep517_backend,
|
|
216
|
+
metadata_directory=req.metadata_directory,
|
|
217
|
+
tempd=temp_dir.path,
|
|
218
|
+
)
|
|
219
|
+
else:
|
|
220
|
+
wheel_path = build_wheel_legacy(
|
|
221
|
+
name=req.name,
|
|
222
|
+
setup_py_path=req.setup_py_path,
|
|
223
|
+
source_dir=req.unpacked_source_directory,
|
|
224
|
+
global_options=global_options,
|
|
225
|
+
build_options=build_options,
|
|
226
|
+
tempd=temp_dir.path,
|
|
227
|
+
)
|
|
228
|
+
|
|
229
|
+
if wheel_path is not None:
|
|
230
|
+
wheel_name = os.path.basename(wheel_path)
|
|
231
|
+
dest_path = os.path.join(output_dir, wheel_name)
|
|
232
|
+
try:
|
|
233
|
+
wheel_hash, length = hash_file(wheel_path)
|
|
234
|
+
shutil.move(wheel_path, dest_path)
|
|
235
|
+
logger.info(
|
|
236
|
+
"Created wheel for %s: filename=%s size=%d sha256=%s",
|
|
237
|
+
req.name,
|
|
238
|
+
wheel_name,
|
|
239
|
+
length,
|
|
240
|
+
wheel_hash.hexdigest(),
|
|
241
|
+
)
|
|
242
|
+
logger.info("Stored in directory: %s", output_dir)
|
|
243
|
+
return dest_path
|
|
244
|
+
except Exception as e:
|
|
245
|
+
logger.warning(
|
|
246
|
+
"Building wheel for %s failed: %s",
|
|
247
|
+
req.name,
|
|
248
|
+
e,
|
|
249
|
+
)
|
|
250
|
+
# Ignore return, we can't do anything else useful.
|
|
251
|
+
if not req.use_pep517:
|
|
252
|
+
_clean_one_legacy(req, global_options)
|
|
253
|
+
return None
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
def _clean_one_legacy(req: InstallRequirement, global_options: list[str]) -> bool:
|
|
257
|
+
clean_args = make_setuptools_clean_args(
|
|
258
|
+
req.setup_py_path,
|
|
259
|
+
global_options=global_options,
|
|
260
|
+
)
|
|
261
|
+
|
|
262
|
+
logger.info("Running setup.py clean for %s", req.name)
|
|
263
|
+
try:
|
|
264
|
+
call_subprocess(
|
|
265
|
+
clean_args, command_desc="python setup.py clean", cwd=req.source_dir
|
|
266
|
+
)
|
|
267
|
+
return True
|
|
268
|
+
except Exception:
|
|
269
|
+
logger.error("Failed cleaning build dir for %s", req.name)
|
|
270
|
+
return False
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
def build(
|
|
274
|
+
requirements: Iterable[InstallRequirement],
|
|
275
|
+
wheel_cache: WheelCache,
|
|
276
|
+
verify: bool,
|
|
277
|
+
build_options: list[str],
|
|
278
|
+
global_options: list[str],
|
|
279
|
+
) -> BuildResult:
|
|
280
|
+
"""Build wheels.
|
|
281
|
+
|
|
282
|
+
:return: The list of InstallRequirement that succeeded to build and
|
|
283
|
+
the list of InstallRequirement that failed to build.
|
|
284
|
+
"""
|
|
285
|
+
if not requirements:
|
|
286
|
+
return [], []
|
|
287
|
+
|
|
288
|
+
# Build the wheels.
|
|
289
|
+
logger.info(
|
|
290
|
+
"Building wheels for collected packages: %s",
|
|
291
|
+
", ".join(req.name for req in requirements), # type: ignore
|
|
292
|
+
)
|
|
293
|
+
|
|
294
|
+
with indent_log():
|
|
295
|
+
build_successes, build_failures = [], []
|
|
296
|
+
for req in requirements:
|
|
297
|
+
assert req.name
|
|
298
|
+
cache_dir = _get_cache_dir(req, wheel_cache)
|
|
299
|
+
wheel_file = _build_one(
|
|
300
|
+
req,
|
|
301
|
+
cache_dir,
|
|
302
|
+
verify,
|
|
303
|
+
build_options,
|
|
304
|
+
global_options,
|
|
305
|
+
req.editable and req.permit_editable_wheels,
|
|
306
|
+
)
|
|
307
|
+
if wheel_file:
|
|
308
|
+
# Record the download origin in the cache
|
|
309
|
+
if req.download_info is not None:
|
|
310
|
+
# download_info is guaranteed to be set because when we build an
|
|
311
|
+
# InstallRequirement it has been through the preparer before, but
|
|
312
|
+
# let's be cautious.
|
|
313
|
+
wheel_cache.record_download_origin(cache_dir, req.download_info)
|
|
314
|
+
# Update the link for this.
|
|
315
|
+
req.link = Link(path_to_url(wheel_file))
|
|
316
|
+
req.local_file_path = req.link.file_path
|
|
317
|
+
assert req.link.is_wheel
|
|
318
|
+
build_successes.append(req)
|
|
319
|
+
else:
|
|
320
|
+
build_failures.append(req)
|
|
321
|
+
|
|
322
|
+
# notify success/failure
|
|
323
|
+
if build_successes:
|
|
324
|
+
logger.info(
|
|
325
|
+
"Successfully built %s",
|
|
326
|
+
" ".join([req.name for req in build_successes]), # type: ignore
|
|
327
|
+
)
|
|
328
|
+
if build_failures:
|
|
329
|
+
logger.info(
|
|
330
|
+
"Failed to build %s",
|
|
331
|
+
" ".join([req.name for req in build_failures]), # type: ignore
|
|
332
|
+
)
|
|
333
|
+
# Return a list of requirements that failed to build
|
|
334
|
+
return build_successes, build_failures
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"""
|
|
2
|
+
pip._vendor is for vendoring dependencies of pip to prevent needing pip to
|
|
3
|
+
depend on something external.
|
|
4
|
+
|
|
5
|
+
Files inside of pip._vendor should be considered immutable and should only be
|
|
6
|
+
updated to versions from upstream.
|
|
7
|
+
"""
|
|
8
|
+
from __future__ import absolute_import
|
|
9
|
+
|
|
10
|
+
import glob
|
|
11
|
+
import os.path
|
|
12
|
+
import sys
|
|
13
|
+
|
|
14
|
+
# Downstream redistributors which have debundled our dependencies should also
|
|
15
|
+
# patch this value to be true. This will trigger the additional patching
|
|
16
|
+
# to cause things like "six" to be available as pip.
|
|
17
|
+
DEBUNDLED = False
|
|
18
|
+
|
|
19
|
+
# By default, look in this directory for a bunch of .whl files which we will
|
|
20
|
+
# add to the beginning of sys.path before attempting to import anything. This
|
|
21
|
+
# is done to support downstream re-distributors like Debian and Fedora who
|
|
22
|
+
# wish to create their own Wheels for our dependencies to aid in debundling.
|
|
23
|
+
WHEEL_DIR = os.path.abspath(os.path.dirname(__file__))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
# Define a small helper function to alias our vendored modules to the real ones
|
|
27
|
+
# if the vendored ones do not exist. This idea of this was taken from
|
|
28
|
+
# https://github.com/kennethreitz/requests/pull/2567.
|
|
29
|
+
def vendored(modulename):
|
|
30
|
+
vendored_name = "{0}.{1}".format(__name__, modulename)
|
|
31
|
+
|
|
32
|
+
try:
|
|
33
|
+
__import__(modulename, globals(), locals(), level=0)
|
|
34
|
+
except ImportError:
|
|
35
|
+
# We can just silently allow import failures to pass here. If we
|
|
36
|
+
# got to this point it means that ``import pip._vendor.whatever``
|
|
37
|
+
# failed and so did ``import whatever``. Since we're importing this
|
|
38
|
+
# upfront in an attempt to alias imports, not erroring here will
|
|
39
|
+
# just mean we get a regular import error whenever pip *actually*
|
|
40
|
+
# tries to import one of these modules to use it, which actually
|
|
41
|
+
# gives us a better error message than we would have otherwise
|
|
42
|
+
# gotten.
|
|
43
|
+
pass
|
|
44
|
+
else:
|
|
45
|
+
sys.modules[vendored_name] = sys.modules[modulename]
|
|
46
|
+
base, head = vendored_name.rsplit(".", 1)
|
|
47
|
+
setattr(sys.modules[base], head, sys.modules[modulename])
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
# If we're operating in a debundled setup, then we want to go ahead and trigger
|
|
51
|
+
# the aliasing of our vendored libraries as well as looking for wheels to add
|
|
52
|
+
# to our sys.path. This will cause all of this code to be a no-op typically
|
|
53
|
+
# however downstream redistributors can enable it in a consistent way across
|
|
54
|
+
# all platforms.
|
|
55
|
+
if DEBUNDLED:
|
|
56
|
+
# Actually look inside of WHEEL_DIR to find .whl files and add them to the
|
|
57
|
+
# front of our sys.path.
|
|
58
|
+
sys.path[:] = glob.glob(os.path.join(WHEEL_DIR, "*.whl")) + sys.path
|
|
59
|
+
|
|
60
|
+
# Actually alias all of our vendored dependencies.
|
|
61
|
+
vendored("cachecontrol")
|
|
62
|
+
vendored("certifi")
|
|
63
|
+
vendored("dependency-groups")
|
|
64
|
+
vendored("distlib")
|
|
65
|
+
vendored("distro")
|
|
66
|
+
vendored("packaging")
|
|
67
|
+
vendored("packaging.version")
|
|
68
|
+
vendored("packaging.specifiers")
|
|
69
|
+
vendored("pkg_resources")
|
|
70
|
+
vendored("platformdirs")
|
|
71
|
+
vendored("progress")
|
|
72
|
+
vendored("pyproject_hooks")
|
|
73
|
+
vendored("requests")
|
|
74
|
+
vendored("requests.exceptions")
|
|
75
|
+
vendored("requests.packages")
|
|
76
|
+
vendored("requests.packages.urllib3")
|
|
77
|
+
vendored("requests.packages.urllib3._collections")
|
|
78
|
+
vendored("requests.packages.urllib3.connection")
|
|
79
|
+
vendored("requests.packages.urllib3.connectionpool")
|
|
80
|
+
vendored("requests.packages.urllib3.contrib")
|
|
81
|
+
vendored("requests.packages.urllib3.contrib.ntlmpool")
|
|
82
|
+
vendored("requests.packages.urllib3.contrib.pyopenssl")
|
|
83
|
+
vendored("requests.packages.urllib3.exceptions")
|
|
84
|
+
vendored("requests.packages.urllib3.fields")
|
|
85
|
+
vendored("requests.packages.urllib3.filepost")
|
|
86
|
+
vendored("requests.packages.urllib3.packages")
|
|
87
|
+
vendored("requests.packages.urllib3.packages.ordered_dict")
|
|
88
|
+
vendored("requests.packages.urllib3.packages.six")
|
|
89
|
+
vendored("requests.packages.urllib3.packages.ssl_match_hostname")
|
|
90
|
+
vendored("requests.packages.urllib3.packages.ssl_match_hostname."
|
|
91
|
+
"_implementation")
|
|
92
|
+
vendored("requests.packages.urllib3.poolmanager")
|
|
93
|
+
vendored("requests.packages.urllib3.request")
|
|
94
|
+
vendored("requests.packages.urllib3.response")
|
|
95
|
+
vendored("requests.packages.urllib3.util")
|
|
96
|
+
vendored("requests.packages.urllib3.util.connection")
|
|
97
|
+
vendored("requests.packages.urllib3.util.request")
|
|
98
|
+
vendored("requests.packages.urllib3.util.response")
|
|
99
|
+
vendored("requests.packages.urllib3.util.retry")
|
|
100
|
+
vendored("requests.packages.urllib3.util.ssl_")
|
|
101
|
+
vendored("requests.packages.urllib3.util.timeout")
|
|
102
|
+
vendored("requests.packages.urllib3.util.url")
|
|
103
|
+
vendored("resolvelib")
|
|
104
|
+
vendored("rich")
|
|
105
|
+
vendored("rich.console")
|
|
106
|
+
vendored("rich.highlighter")
|
|
107
|
+
vendored("rich.logging")
|
|
108
|
+
vendored("rich.markup")
|
|
109
|
+
vendored("rich.progress")
|
|
110
|
+
vendored("rich.segment")
|
|
111
|
+
vendored("rich.style")
|
|
112
|
+
vendored("rich.text")
|
|
113
|
+
vendored("rich.traceback")
|
|
114
|
+
if sys.version_info < (3, 11):
|
|
115
|
+
vendored("tomli")
|
|
116
|
+
vendored("truststore")
|
|
117
|
+
vendored("urllib3")
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: 2015 Eric Larson
|
|
2
|
+
#
|
|
3
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
|
|
5
|
+
"""CacheControl import Interface.
|
|
6
|
+
|
|
7
|
+
Make it easy to import from cachecontrol without long namespaces.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
__author__ = "Eric Larson"
|
|
11
|
+
__email__ = "eric@ionrock.org"
|
|
12
|
+
__version__ = "0.14.3"
|
|
13
|
+
|
|
14
|
+
from pip._vendor.cachecontrol.adapter import CacheControlAdapter
|
|
15
|
+
from pip._vendor.cachecontrol.controller import CacheController
|
|
16
|
+
from pip._vendor.cachecontrol.wrapper import CacheControl
|
|
17
|
+
|
|
18
|
+
__all__ = [
|
|
19
|
+
"__author__",
|
|
20
|
+
"__email__",
|
|
21
|
+
"__version__",
|
|
22
|
+
"CacheControlAdapter",
|
|
23
|
+
"CacheController",
|
|
24
|
+
"CacheControl",
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
import logging
|
|
28
|
+
|
|
29
|
+
logging.getLogger(__name__).addHandler(logging.NullHandler())
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: 2015 Eric Larson
|
|
2
|
+
#
|
|
3
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
import logging
|
|
7
|
+
from argparse import ArgumentParser
|
|
8
|
+
from typing import TYPE_CHECKING
|
|
9
|
+
|
|
10
|
+
from pip._vendor import requests
|
|
11
|
+
|
|
12
|
+
from pip._vendor.cachecontrol.adapter import CacheControlAdapter
|
|
13
|
+
from pip._vendor.cachecontrol.cache import DictCache
|
|
14
|
+
from pip._vendor.cachecontrol.controller import logger
|
|
15
|
+
|
|
16
|
+
if TYPE_CHECKING:
|
|
17
|
+
from argparse import Namespace
|
|
18
|
+
|
|
19
|
+
from pip._vendor.cachecontrol.controller import CacheController
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def setup_logging() -> None:
|
|
23
|
+
logger.setLevel(logging.DEBUG)
|
|
24
|
+
handler = logging.StreamHandler()
|
|
25
|
+
logger.addHandler(handler)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def get_session() -> requests.Session:
|
|
29
|
+
adapter = CacheControlAdapter(
|
|
30
|
+
DictCache(), cache_etags=True, serializer=None, heuristic=None
|
|
31
|
+
)
|
|
32
|
+
sess = requests.Session()
|
|
33
|
+
sess.mount("http://", adapter)
|
|
34
|
+
sess.mount("https://", adapter)
|
|
35
|
+
|
|
36
|
+
sess.cache_controller = adapter.controller # type: ignore[attr-defined]
|
|
37
|
+
return sess
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def get_args() -> Namespace:
|
|
41
|
+
parser = ArgumentParser()
|
|
42
|
+
parser.add_argument("url", help="The URL to try and cache")
|
|
43
|
+
return parser.parse_args()
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def main() -> None:
|
|
47
|
+
args = get_args()
|
|
48
|
+
sess = get_session()
|
|
49
|
+
|
|
50
|
+
# Make a request to get a response
|
|
51
|
+
resp = sess.get(args.url)
|
|
52
|
+
|
|
53
|
+
# Turn on logging
|
|
54
|
+
setup_logging()
|
|
55
|
+
|
|
56
|
+
# try setting the cache
|
|
57
|
+
cache_controller: CacheController = (
|
|
58
|
+
sess.cache_controller # type: ignore[attr-defined]
|
|
59
|
+
)
|
|
60
|
+
cache_controller.cache_response(resp.request, resp.raw)
|
|
61
|
+
|
|
62
|
+
# Now try to get it
|
|
63
|
+
if cache_controller.cached_request(resp.request):
|
|
64
|
+
print("Cached!")
|
|
65
|
+
else:
|
|
66
|
+
print("Not cached :(")
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
if __name__ == "__main__":
|
|
70
|
+
main()
|