pex 2.103.0__tar.gz → 2.103.2__tar.gz
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.
- {pex-2.103.0 → pex-2.103.2}/CHANGES.md +19 -0
- {pex-2.103.0 → pex-2.103.2}/PKG-INFO +4 -4
- {pex-2.103.0 → pex-2.103.2}/pex/cache/dirs.py +3 -3
- {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/venv.py +3 -2
- {pex-2.103.0 → pex-2.103.2}/pex/compatibility.py +0 -22
- pex-2.103.2/pex/fetcher/__init__.py +9 -0
- pex-2.103.2/pex/fetcher/ssl.py +131 -0
- pex-2.103.0/pex/fetcher.py → pex-2.103.2/pex/fetcher/url.py +30 -136
- {pex-2.103.0 → pex-2.103.2}/pex/pex_builder.py +1 -1
- {pex-2.103.0 → pex-2.103.2}/pex/requirements.py +2 -1
- {pex-2.103.0 → pex-2.103.2}/pex/venv/installer.py +7 -2
- {pex-2.103.0 → pex-2.103.2}/pex/venv/virtualenv.py +2 -1
- {pex-2.103.0 → pex-2.103.2}/pex/version.py +1 -1
- {pex-2.103.0 → pex-2.103.2}/pex/windows/__init__.py +2 -1
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_venv_create.py +42 -0
- {pex-2.103.0 → pex-2.103.2}/LICENSE +0 -0
- {pex-2.103.0 → pex-2.103.2}/MANIFEST.in +0 -0
- {pex-2.103.0 → pex-2.103.2}/README.rst +0 -0
- {pex-2.103.0 → pex-2.103.2}/assets/download.svg +0 -0
- {pex-2.103.0 → pex-2.103.2}/assets/github.svg +0 -0
- {pex-2.103.0 → pex-2.103.2}/assets/pdf.svg +0 -0
- {pex-2.103.0 → pex-2.103.2}/assets/pex-icon-512.png +0 -0
- {pex-2.103.0 → pex-2.103.2}/assets/pex-icon-512x512.png +0 -0
- {pex-2.103.0 → pex-2.103.2}/assets/pex-logo-dark.png +0 -0
- {pex-2.103.0 → pex-2.103.2}/assets/pex-logo-light.png +0 -0
- {pex-2.103.0 → pex-2.103.2}/assets/pex.svg +0 -0
- {pex-2.103.0 → pex-2.103.2}/assets/python.svg +0 -0
- {pex-2.103.0 → pex-2.103.2}/build-backend/pex_build/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/build-backend/pex_build/setuptools/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/build-backend/pex_build/setuptools/build.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/docker/base/Dockerfile +0 -0
- {pex-2.103.0 → pex-2.103.2}/docker/base/install-pythons.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/docker/base/new-versions.toml +0 -0
- {pex-2.103.0 → pex-2.103.2}/docker/base/old-versions.toml +0 -0
- {pex-2.103.0 → pex-2.103.2}/docker/cache/Dockerfile +0 -0
- {pex-2.103.0 → pex-2.103.2}/docker/cache/populate_cache.sh +0 -0
- {pex-2.103.0 → pex-2.103.2}/docker/user/Dockerfile +0 -0
- {pex-2.103.0 → pex-2.103.2}/docker/user/create_docker_image_user.sh +0 -0
- {pex-2.103.0 → pex-2.103.2}/docs/_ext/sphinx_pex/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/docs/_ext/sphinx_pex/vars.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/docs/_static/pex-icon.png +0 -0
- {pex-2.103.0 → pex-2.103.2}/docs/_static/pex-logo-dark.png +0 -0
- {pex-2.103.0 → pex-2.103.2}/docs/_static/pex-logo-light.png +0 -0
- {pex-2.103.0 → pex-2.103.2}/docs/_templates/page.html +0 -0
- {pex-2.103.0 → pex-2.103.2}/docs/_templates/search.html +0 -0
- {pex-2.103.0 → pex-2.103.2}/docs/api/vars.md +0 -0
- {pex-2.103.0 → pex-2.103.2}/docs/buildingpex.rst +0 -0
- {pex-2.103.0 → pex-2.103.2}/docs/conf.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/docs/index.rst +0 -0
- {pex-2.103.0 → pex-2.103.2}/docs/recipes.rst +0 -0
- {pex-2.103.0 → pex-2.103.2}/docs/scie.md +0 -0
- {pex-2.103.0 → pex-2.103.2}/docs/whatispex.rst +0 -0
- {pex-2.103.0 → pex-2.103.2}/duvrc.sh +0 -0
- {pex-2.103.0 → pex-2.103.2}/mypy.ini +0 -0
- {pex-2.103.0 → pex-2.103.2}/package/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/package/complete-platforms/linux-aarch64.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/package/complete-platforms/linux-armv7l.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/package/complete-platforms/linux-riscv64.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/package/complete-platforms/linux-x86_64.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/package/complete-platforms/macos-aarch64.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/package/complete-platforms/macos-x86_64.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/package/complete-platforms/musl-linux-aarch64.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/package/complete-platforms/musl-linux-x86_64.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/package/package.toml +0 -0
- {pex-2.103.0 → pex-2.103.2}/package/pex-scie.lock +0 -0
- {pex-2.103.0 → pex-2.103.2}/package/scie_config.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/__main__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/argparse.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/artifact_url.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/atexit.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/atomic_directory.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/attrs.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/auth.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/bin/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/bin/pex.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/bootstrap.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/build_backend/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/build_backend/configuration.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/build_backend/pylock.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/build_backend/wrap.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/build_properties.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/build_system/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/build_system/pep_517.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/build_system/pep_518.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/cache/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/cache/access.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/cache/prunable.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/cache/root.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/cli/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/cli/__main__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/cli/command.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/cache/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/cache/bytes.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/cache/command.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/cache/du.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/cache_aware.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/docs.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/interpreter.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/lock.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/pip/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/pip/core.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/pip/download.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/pip/wheel.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/run.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/scie.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/cli/pex.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/cli_util.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/commands/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/commands/command.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/common.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/compiler.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/dependency_configuration.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/dependency_manager.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/dist_metadata.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/distutils/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/distutils/commands/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/distutils/commands/bdist_pex.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/docs/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/docs/command.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/entry_points_txt.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/enum.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/environment.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/exceptions.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/executables.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/executor.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/finders.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/fingerprinted_distribution.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/fs/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/fs/_unix.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/fs/_windows.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/fs/lock.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/globals.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/hashing.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/hashing.py.lck +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/http/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/http/server.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/inherit_path.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/installed_wheel.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/interpreter.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/interpreter_constraints.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/interpreter_implementation.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/interpreter_selection_strategy.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/job_start_method.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/jobs.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/lang.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/layout.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/namespace.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/network_configuration.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/orderedset.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/os.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pep_376.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pep_425.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pep_427.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pep_440.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pep_503.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pep_508.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pep_723.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pex.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pex_boot.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pex_bootstrapper.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pex_info.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pex_root.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pex_warnings.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pip/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pip/dependencies/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pip/dependencies/requires.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pip/download_observer.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pip/foreign_platform/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pip/foreign_platform/markers.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pip/foreign_platform/requires_python.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pip/foreign_platform/tags.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pip/installation.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pip/local_project.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pip/log_analyzer.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pip/package_repositories/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pip/package_repositories/link_collector.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pip/tailer.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pip/tool.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pip/vcs.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pip/version.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/platforms.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pth.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/pyenv.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/rank.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/rc/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/rc/model.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/rc/pexrc.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/repl/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/repl/custom.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/repl/pex_repl.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/requirement_key.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/abbreviated_platforms.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/config.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/configured_resolve.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/configured_resolver.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/downloads.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/lock_downloader.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/lock_resolver.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/locked_resolve.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/locker.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/locker_patches.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/lockfile/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/lockfile/create.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/lockfile/download_manager.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/lockfile/json_codec.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/lockfile/model.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/lockfile/pep_751.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/lockfile/requires_dist.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/lockfile/subset.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/lockfile/targets.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/lockfile/tarjan.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/lockfile/updater.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/package_repository.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/path_mappings.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/pep_691/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/pep_691/api.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/pep_691/fingerprint_service.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/pep_691/model.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/pex_repository_resolver.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/pre_resolved_resolver.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/project.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/requirement_configuration.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/requirement_options.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/resolved_requirement.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/resolver_configuration.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/resolver_options.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/resolvers.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/script_metadata.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/target_configuration.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/target_options.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/target_system.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolve/venv_resolver.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/resolver.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/result.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/scie/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/scie/configure-binding.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/scie/model.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/scie/resource-binding.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/scie/science.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/sdist.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/sh_boot.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/sorted_tuple.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/specifier_sets.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/subprocess.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/sysconfig.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/targets.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/third_party/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/toml.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/tools/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/tools/__main__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/tools/command.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/tools/commands/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/tools/commands/digraph.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/tools/commands/graph.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/tools/commands/info.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/tools/commands/interpreter.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/tools/commands/repository.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/tools/commands/venv.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/tools/main.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/tracer.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/typing.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/util.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/variables.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/README.md +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/__main__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/.layout.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/ansicolors-1.1.8.dist-info/DESCRIPTION.rst +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/ansicolors-1.1.8.dist-info/METADATA +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/ansicolors-1.1.8.dist-info/RECORD +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/ansicolors-1.1.8.dist-info/WHEEL +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/ansicolors-1.1.8.dist-info/metadata.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/ansicolors-1.1.8.dist-info/top_level.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/ansicolors-1.1.8.pex-info/original-whl-info.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/colors/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/colors/colors.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/colors/csscolors.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/colors/version.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/constraints.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/appdirs/.layout.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/appdirs/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/appdirs/appdirs-1.4.4.dist-info/LICENSE.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/appdirs/appdirs-1.4.4.dist-info/METADATA +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/appdirs/appdirs-1.4.4.dist-info/RECORD +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/appdirs/appdirs-1.4.4.dist-info/WHEEL +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/appdirs/appdirs-1.4.4.dist-info/top_level.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/appdirs/appdirs-1.4.4.pex-info/original-whl-info.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/appdirs/appdirs.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/appdirs/constraints.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/.layout.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/__init__.pyi +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/_cmp.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/_cmp.pyi +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/_compat.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/_config.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/_funcs.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/_make.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/_next_gen.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/_version_info.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/_version_info.pyi +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/converters.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/converters.pyi +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/exceptions.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/exceptions.pyi +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/filters.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/filters.pyi +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/py.typed +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/setters.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/setters.pyi +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/validators.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/validators.pyi +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs/__init__.pyi +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs/converters.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs/exceptions.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs/filters.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs/py.typed +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs/setters.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs/validators.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs-21.5.0.dev0.dist-info/AUTHORS.rst +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs-21.5.0.dev0.dist-info/LICENSE +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs-21.5.0.dev0.dist-info/METADATA +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs-21.5.0.dev0.dist-info/RECORD +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs-21.5.0.dev0.dist-info/WHEEL +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs-21.5.0.dev0.dist-info/top_level.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs-21.5.0.dev0.pex-info/original-whl-info.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/.layout.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/constraints.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging/__about__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging/_compat.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging/_structures.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging/_typing.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging/markers.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging/py.typed +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging/requirements.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging/specifiers.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging/tags.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging/utils.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging/version.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging-20.9.dist-info/LICENSE +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging-20.9.dist-info/LICENSE.APACHE +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging-20.9.dist-info/LICENSE.BSD +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging-20.9.dist-info/METADATA +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging-20.9.dist-info/RECORD +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging-20.9.dist-info/WHEEL +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging-20.9.dist-info/top_level.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging-20.9.pex-info/original-whl-info.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/pyparsing-2.4.7.dist-info/LICENSE +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/pyparsing-2.4.7.dist-info/METADATA +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/pyparsing-2.4.7.dist-info/RECORD +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/pyparsing-2.4.7.dist-info/WHEEL +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/pyparsing-2.4.7.dist-info/top_level.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/pyparsing-2.4.7.pex-info/original-whl-info.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/pyparsing.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/.layout.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/constraints.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging/__about__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging/_manylinux.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging/_musllinux.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging/_structures.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging/markers.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging/py.typed +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging/requirements.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging/specifiers.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging/tags.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging/utils.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging/version.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging-21.3.dist-info/LICENSE +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging-21.3.dist-info/LICENSE.APACHE +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging-21.3.dist-info/LICENSE.BSD +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging-21.3.dist-info/METADATA +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging-21.3.dist-info/RECORD +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging-21.3.dist-info/WHEEL +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging-21.3.dist-info/top_level.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging-21.3.pex-info/original-whl-info.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing/actions.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing/common.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing/core.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing/diagram/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing/diagram/template.jinja2 +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing/exceptions.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing/helpers.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing/results.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing/testing.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing/unicode.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing/util.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing-3.0.7.dist-info/LICENSE +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing-3.0.7.dist-info/METADATA +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing-3.0.7.dist-info/RECORD +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing-3.0.7.dist-info/WHEEL +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing-3.0.7.dist-info/top_level.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing-3.0.7.pex-info/original-whl-info.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/.layout.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/constraints.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/_elffile.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/_manylinux.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/_musllinux.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/_parser.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/_structures.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/_tokenizer.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/markers.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/metadata.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/py.typed +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/requirements.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/specifiers.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/tags.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/utils.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/version.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging-24.0.dist-info/LICENSE +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging-24.0.dist-info/LICENSE.APACHE +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging-24.0.dist-info/LICENSE.BSD +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging-24.0.dist-info/METADATA +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging-24.0.dist-info/RECORD +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging-24.0.dist-info/WHEEL +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging-24.0.pex-info/original-whl-info.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/.layout.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/constraints.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/_elffile.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/_manylinux.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/_musllinux.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/_parser.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/_structures.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/_tokenizer.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/dependency_groups.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/direct_url.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/errors.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/licenses/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/licenses/_spdx.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/markers.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/metadata.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/py.typed +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/pylock.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/requirements.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/specifiers.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/tags.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/utils.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/version.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging-26.2.dist-info/METADATA +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging-26.2.dist-info/RECORD +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging-26.2.dist-info/WHEEL +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging-26.2.dist-info/licenses/LICENSE +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging-26.2.dist-info/licenses/LICENSE.APACHE +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging-26.2.dist-info/licenses/LICENSE.BSD +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging-26.2.pex-info/original-whl-info.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/.layout.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/constraints.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/_elffile.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/_manylinux.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/_musllinux.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/_parser.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/_ranges.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/_structures.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/_tokenizer.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/dependency_groups.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/direct_url.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/errors.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/licenses/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/licenses/_spdx.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/markers.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/metadata.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/py.typed +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/pylock.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/ranges.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/requirements.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/specifiers.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/tags.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/utils.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/version.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging-26.3.dist-info/METADATA +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging-26.3.dist-info/RECORD +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging-26.3.dist-info/WHEEL +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging-26.3.dist-info/licenses/LICENSE +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging-26.3.dist-info/licenses/LICENSE.APACHE +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging-26.3.dist-info/licenses/LICENSE.BSD +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging-26.3.pex-info/original-whl-info.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/.layout.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/.prefix/bin/pip +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/.prefix/bin/pip3 +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/.prefix/bin/pip3.9 +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/__main__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/build_env.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/cache.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/cli/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/cli/autocompletion.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/cli/base_command.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/cli/cmdoptions.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/cli/command_context.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/cli/main.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/cli/main_parser.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/cli/parser.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/cli/progress_bars.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/cli/req_command.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/cli/spinners.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/cli/status_codes.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/cache.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/check.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/completion.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/configuration.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/debug.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/download.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/freeze.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/hash.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/help.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/install.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/list.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/search.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/show.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/uninstall.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/wheel.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/configuration.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/distributions/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/distributions/base.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/distributions/installed.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/distributions/sdist.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/distributions/wheel.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/exceptions.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/index/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/index/collector.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/index/package_finder.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/locations.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/main.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/models/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/models/candidate.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/models/direct_url.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/models/format_control.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/models/index.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/models/link.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/models/scheme.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/models/search_scope.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/models/selection_prefs.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/models/target_python.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/models/wheel.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/network/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/network/auth.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/network/cache.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/network/download.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/network/lazy_wheel.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/network/session.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/network/utils.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/network/xmlrpc.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/operations/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/operations/build/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/operations/build/metadata.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/operations/build/metadata_legacy.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/operations/build/wheel.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/operations/build/wheel_legacy.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/operations/check.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/operations/freeze.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/operations/install/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/operations/install/editable_legacy.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/operations/install/legacy.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/operations/install/wheel.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/operations/prepare.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/pyproject.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/req/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/req/constructors.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/req/req_file.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/req/req_install.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/req/req_set.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/req/req_tracker.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/req/req_uninstall.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/resolution/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/resolution/base.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/resolution/legacy/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/resolution/legacy/resolver.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/resolution/resolvelib/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/resolution/resolvelib/base.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/resolution/resolvelib/candidates.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/resolution/resolvelib/factory.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/resolution/resolvelib/found_candidates.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/resolution/resolvelib/provider.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/resolution/resolvelib/reporter.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/resolution/resolvelib/requirements.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/resolution/resolvelib/resolver.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/self_outdated_check.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/appdirs.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/compat.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/compatibility_tags.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/datetime.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/deprecation.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/direct_url_helpers.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/distutils_args.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/encoding.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/entrypoints.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/filesystem.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/filetypes.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/glibc.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/hashes.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/inject_securetransport.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/logging.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/misc.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/models.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/packaging.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/parallel.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/pkg_resources.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/setuptools_build.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/subprocess.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/temp_dir.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/typing.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/unpacking.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/urls.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/virtualenv.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/wheel.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/vcs/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/vcs/bazaar.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/vcs/git.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/vcs/mercurial.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/vcs/subversion.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/vcs/versioncontrol.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/wheel_builder.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/appdirs.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/cachecontrol/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/cachecontrol/_cmd.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/cachecontrol/adapter.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/cachecontrol/cache.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/cachecontrol/caches/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/cachecontrol/caches/file_cache.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/cachecontrol/caches/redis_cache.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/cachecontrol/compat.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/cachecontrol/controller.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/cachecontrol/filewrapper.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/cachecontrol/heuristics.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/cachecontrol/serialize.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/cachecontrol/wrapper.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/certifi/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/certifi/__main__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/certifi/cacert.pem +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/certifi/core.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/big5freq.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/big5prober.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/chardistribution.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/charsetgroupprober.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/charsetprober.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/cli/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/cli/chardetect.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/codingstatemachine.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/compat.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/cp949prober.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/enums.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/escprober.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/escsm.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/eucjpprober.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/euckrfreq.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/euckrprober.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/euctwfreq.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/euctwprober.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/gb2312freq.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/gb2312prober.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/hebrewprober.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/jisfreq.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/jpcntx.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/langbulgarianmodel.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/langcyrillicmodel.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/langgreekmodel.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/langhebrewmodel.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/langhungarianmodel.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/langthaimodel.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/langturkishmodel.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/latin1prober.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/mbcharsetprober.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/mbcsgroupprober.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/mbcssm.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/sbcharsetprober.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/sbcsgroupprober.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/sjisprober.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/universaldetector.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/utf8prober.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/version.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/colorama/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/colorama/ansi.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/colorama/ansitowin32.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/colorama/initialise.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/colorama/win32.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/colorama/winterm.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/contextlib2.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/_backport/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/_backport/misc.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/_backport/shutil.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/_backport/sysconfig.cfg +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/_backport/sysconfig.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/_backport/tarfile.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/compat.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/database.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/index.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/locators.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/manifest.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/markers.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/metadata.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/resources.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/scripts.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/t32.exe +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/t64.exe +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/util.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/version.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/w32.exe +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/w64.exe +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/wheel.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distro.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/_ihatexml.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/_inputstream.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/_tokenizer.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/_trie/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/_trie/_base.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/_trie/py.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/_utils.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/constants.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/filters/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/filters/alphabeticalattributes.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/filters/base.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/filters/inject_meta_charset.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/filters/lint.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/filters/optionaltags.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/filters/sanitizer.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/filters/whitespace.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/html5parser.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/serializer.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treeadapters/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treeadapters/genshi.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treeadapters/sax.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treebuilders/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treebuilders/base.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treebuilders/dom.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treebuilders/etree.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treebuilders/etree_lxml.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treewalkers/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treewalkers/base.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treewalkers/dom.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treewalkers/etree.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treewalkers/etree_lxml.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treewalkers/genshi.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/idna/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/idna/codec.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/idna/compat.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/idna/core.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/idna/idnadata.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/idna/intranges.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/idna/package_data.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/idna/uts46data.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/ipaddress.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/msgpack/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/msgpack/_version.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/msgpack/exceptions.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/msgpack/ext.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/msgpack/fallback.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/packaging/__about__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/packaging/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/packaging/_compat.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/packaging/_structures.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/packaging/_typing.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/packaging/markers.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/packaging/requirements.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/packaging/specifiers.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/packaging/tags.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/packaging/utils.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/packaging/version.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/pep517/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/pep517/_in_process.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/pep517/build.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/pep517/check.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/pep517/colorlog.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/pep517/compat.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/pep517/dirtools.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/pep517/envbuild.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/pep517/meta.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/pep517/wrappers.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/pkg_resources/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/pkg_resources/py31compat.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/progress/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/progress/bar.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/progress/counter.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/progress/spinner.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/pyparsing.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/__version__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/_internal_utils.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/adapters.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/api.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/auth.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/certs.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/compat.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/cookies.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/exceptions.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/help.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/hooks.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/models.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/packages.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/sessions.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/status_codes.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/structures.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/utils.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/resolvelib/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/resolvelib/compat/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/resolvelib/compat/collections_abc.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/resolvelib/providers.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/resolvelib/reporters.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/resolvelib/resolvers.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/resolvelib/structs.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/retrying.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/six.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/toml/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/toml/decoder.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/toml/encoder.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/toml/ordered.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/toml/tz.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/_collections.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/_version.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/connection.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/connectionpool.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/contrib/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/contrib/_appengine_environ.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/contrib/_securetransport/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/contrib/appengine.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/contrib/ntlmpool.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/contrib/pyopenssl.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/contrib/securetransport.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/contrib/socks.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/exceptions.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/fields.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/filepost.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/packages/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/packages/backports/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/packages/backports/makefile.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/packages/six.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/poolmanager.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/request.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/response.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/util/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/util/connection.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/util/proxy.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/util/queue.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/util/request.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/util/response.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/util/retry.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/util/ssl_.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/util/ssltransport.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/util/timeout.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/util/url.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/util/wait.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/vendor.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/webencodings/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/webencodings/labels.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/webencodings/mklabels.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/webencodings/tests.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/webencodings/x_user_defined.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip-20.3.4.dist-info/LICENSE.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip-20.3.4.dist-info/METADATA +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip-20.3.4.dist-info/RECORD +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip-20.3.4.dist-info/WHEEL +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip-20.3.4.dist-info/entry_points.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip-20.3.4.dist-info/top_level.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip-20.3.4.pex-info/original-whl-info.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/.layout.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/.prefix/bin/easy_install +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/.prefix/bin/easy_install-3.9 +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/easy_install.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/_vendor/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/_vendor/appdirs.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/_vendor/packaging/__about__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/_vendor/packaging/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/_vendor/packaging/_compat.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/_vendor/packaging/_structures.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/_vendor/packaging/markers.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/_vendor/packaging/requirements.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/_vendor/packaging/specifiers.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/_vendor/packaging/utils.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/_vendor/packaging/version.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/_vendor/pyparsing.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/_vendor/six.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/extern/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/py31compat.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_deprecation_warning.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_imp.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/ordered_set.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/packaging/__about__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/packaging/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/packaging/_compat.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/packaging/_structures.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/packaging/markers.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/packaging/requirements.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/packaging/specifiers.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/packaging/tags.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/packaging/utils.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/packaging/version.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/pyparsing.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/six.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/archive_util.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/build_meta.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/cli-32.exe +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/cli-64.exe +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/cli.exe +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/alias.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/bdist_egg.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/bdist_rpm.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/bdist_wininst.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/build_clib.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/build_ext.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/build_py.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/develop.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/dist_info.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/easy_install.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/egg_info.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/install.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/install_egg_info.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/install_lib.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/install_scripts.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/launcher manifest.xml +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/py36compat.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/register.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/rotate.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/saveopts.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/sdist.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/setopt.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/test.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/upload.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/upload_docs.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/config.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/dep_util.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/depends.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/dist.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/errors.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/extension.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/extern/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/glob.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/gui-32.exe +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/gui-64.exe +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/gui.exe +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/installer.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/launch.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/lib2to3_ex.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/monkey.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/msvc.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/namespaces.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/package_index.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/py27compat.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/py31compat.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/py33compat.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/py34compat.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/sandbox.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/script (dev).tmpl +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/script.tmpl +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/site-patch.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/ssl_support.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/unicode_utils.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/version.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/wheel.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/windows_support.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools-44.0.0+3acb925dd708430aeaf197ea53ac8a752f7c1863.dist-info/LICENSE +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools-44.0.0+3acb925dd708430aeaf197ea53ac8a752f7c1863.dist-info/METADATA +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools-44.0.0+3acb925dd708430aeaf197ea53ac8a752f7c1863.dist-info/RECORD +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools-44.0.0+3acb925dd708430aeaf197ea53ac8a752f7c1863.dist-info/WHEEL +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools-44.0.0+3acb925dd708430aeaf197ea53ac8a752f7c1863.dist-info/dependency_links.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools-44.0.0+3acb925dd708430aeaf197ea53ac8a752f7c1863.dist-info/entry_points.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools-44.0.0+3acb925dd708430aeaf197ea53ac8a752f7c1863.dist-info/top_level.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools-44.0.0+3acb925dd708430aeaf197ea53ac8a752f7c1863.dist-info/zip-safe +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools-44.0.0+3acb925dd708430aeaf197ea53ac8a752f7c1863.pex-info/original-whl-info.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/.layout.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/constraints.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/toml/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/toml/decoder.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/toml/encoder.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/toml/ordered.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/toml/tz.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/toml-0.10.2.dist-info/LICENSE +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/toml-0.10.2.dist-info/METADATA +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/toml-0.10.2.dist-info/RECORD +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/toml-0.10.2.dist-info/WHEEL +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/toml-0.10.2.dist-info/top_level.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/toml-0.10.2.pex-info/original-whl-info.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/tomli/.layout.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/tomli/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/tomli/constraints.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/tomli/tomli/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/tomli/tomli/_parser.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/tomli/tomli/_re.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/tomli/tomli/_types.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/tomli/tomli/py.typed +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/tomli/tomli-2.0.1.dist-info/LICENSE +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/tomli/tomli-2.0.1.dist-info/METADATA +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/tomli/tomli-2.0.1.dist-info/RECORD +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/tomli/tomli-2.0.1.dist-info/WHEEL +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/tomli/tomli-2.0.1.pex-info/original-whl-info.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/venv/README.md +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/venv/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/venv/bin_path.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/venv/install_scope.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/venv/installer_configuration.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/venv/installer_options.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/venv/venv_pex.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/venv/virtualenv_16.7.12_py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/wheel.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/whl.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/windows/stubs/uv-trampoline-aarch64-console.exe +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/windows/stubs/uv-trampoline-aarch64-gui.exe +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/windows/stubs/uv-trampoline-x86_64-console.exe +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/windows/stubs/uv-trampoline-x86_64-gui.exe +0 -0
- {pex-2.103.0 → pex-2.103.2}/pex/ziputils.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/pylock.toml +0 -0
- {pex-2.103.0 → pex-2.103.2}/pyproject.toml +0 -0
- {pex-2.103.0 → pex-2.103.2}/scripts/analyze-CI-shard-timeout.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/scripts/build-cache-image.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/scripts/build-docs.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/scripts/create-packages.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/scripts/dev-cmd-fix-egg-link.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/scripts/dev-cmd-pip-install-pex-next.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/scripts/embed-virtualenv.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/scripts/format.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/scripts/gen-scie-platform.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/scripts/lint.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/scripts/py27/lint_enum.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/scripts/requires-python-check.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/scripts/typecheck.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/setup.cfg +0 -0
- {pex-2.103.0 → pex-2.103.2}/setup.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/bin/run_tests.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/build_system.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/cli.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/data/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/data/locks/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/data/locks/bug-report-pantsbuild-23407.lock.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/data/locks/devpi-server.lock.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/data/locks/issue-2415.lock.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/data/locks/issue-2683.lock.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/data/locks/mitmproxy.lock.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/data/locks/pylock.issue-2887.toml +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/data/locks/requests.lock.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/data/pip_logs/issue-2414.pip-23.2.log +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/data/pip_logs/issue-2414.pip-23.3.1.log +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/data/platforms/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/data/platforms/complete_platform_almalinux-8.10_py3.11.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/data/platforms/complete_platform_linux_armv7l_py312.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/data/platforms/complete_platform_linux_x86-64_py311.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/data/platforms/linux-x86_64.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/data/platforms/macos-aarch64.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/data/platforms/macosx_10_13_x86_64-cp-36-m.tags-packaging26.3.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/data/platforms/macosx_10_13_x86_64-cp-36-m.tags.txt +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/devpi.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/dist_metadata.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/docker.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/find_links.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/local_project.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/lock.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/mitmproxy.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/pep_427.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/pex_dist.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/pip.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/pytest_utils/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/pytest_utils/shard.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/pytest_utils/tmp.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/pytest_utils/track_status_hook.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/pytest_utils/track_status_hook_py2.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/pytest_utils/track_status_hook_py3.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/resolve.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/scie.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/subprocess.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/uv.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/testing/venv.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/bin/test_sh_boot.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/build_backend/test_configuration.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/build_backend/test_pylock.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/build_system/test_issue_2125.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/build_system/test_pep_517.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/build_system/test_pep_518.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/commands/test_command.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/conftest.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/example_packages/MarkupSafe-1.0-cp27-cp27mu-linux_x86_64.whl +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/example_packages/PyAthena-1.11.5-py2.py3-none-any.whl +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/example_packages/PyAthena-1.9.0-py2.py3-none-any.whl +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/example_packages/aws_cfn_bootstrap-1.4-py2-none-any.whl +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/example_packages/pyparsing-2.1.10-py2.py3-none-any.whl +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/build_backend/test_wrap.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/build_system/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/build_system/test_issue_2063.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/build_system/test_issue_2125.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/build_system/test_issue_2913.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/build_system/test_pep_517.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/build_system/test_pep_518.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_cache_prune.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_discussion_2752.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_download.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_export.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_export_subset.lock.json +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_export_subset.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_interpreter_inspect.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_1413.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_1665.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_1667.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_1688.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_1711.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_1734.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_1741.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_1801.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_1821.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_2050.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_2057.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_2059.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_2098.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_2211.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_2268.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_2313.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_2414.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_2519.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_3148.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_3194.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_3206.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_local_project_lock.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock_dependency_groups.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock_elide_unused_requires_dist.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock_foreign_platform_sdist.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock_report.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock_reproducibility_hash_seed.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock_requirements_file.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock_resolve_auth.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock_script_metadata.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock_subset.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock_sync.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock_update.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock_update_issues_2332_2334.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock_uploaded_prior_to.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_pep_751.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_run.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_scie_create.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_split_universal_locks.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_vcs_lock.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_venv_inspect.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_wheel.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/conftest.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/pep_691/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/pep_691/test_api.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_dependency_groups.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_1361.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_1907.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_1918.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_2092.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_2412.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_2532.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_2568.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_2772.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_2785.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_2877.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_2926.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_2930_and_2931.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_3008.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_3022.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_3032.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_3040.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_3244.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_universal_lock_splits.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_venv_resolver.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/scie/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/scie/test_discussion_2516.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/scie/test_issue_2733.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/scie/test_issue_2740.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/scie/test_issue_2810.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/scie/test_issue_2827.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/scie/test_issue_3195.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/scie/test_issue_3217.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/scie/test_pex_scie.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/scie/test_scie_ephemeral_run.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_bind_resource_path.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_build_properties.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_direct_url_pex.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_discussion_2979.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_discussion_3044.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_downloaded_artifact_metadata_invalid.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_downloads.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_excludes.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_executuon_mode_venv.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_inject_env_and_args.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_inject_python_args.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_integration.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_interpreter.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_interpreter_selection.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_interpreter_selection_strategy.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1017.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1018.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1025.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1031.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1075.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1179.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1201.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1202.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1218.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1225.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1232.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1302.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1316.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1336.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1422.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1447.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1479.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1520.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1537.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1540.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1550.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1560.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_157.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1597.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1598.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1656.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1683.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1726.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1730.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1802.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1809.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1817.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1825.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1856.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1861.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1870.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1872.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1879.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1933.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1936.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1949.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1995.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2001.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2006.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2017.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2023.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2038.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2073.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2087.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2088.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2113.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2134.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2183.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2186.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2203.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2235.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2249.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2299.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2324.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2343.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2348.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2355.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2371.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2389.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2391.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2395.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2410.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2412.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2413.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2415.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2432.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2441.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2572.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2631.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2706.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2739.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2819.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2822.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2862.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2885.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2897.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2941.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2942.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2949.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_298.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2991.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2998.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3003.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3030.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3047.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3050.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3089.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3113.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3116.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3118.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3135.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3138.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3223.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3242.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3248.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3259.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_434.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_455.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_539.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_598.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_661.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_729.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_736.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_745.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_749.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_898.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_899.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_940.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_996.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_keyring_support.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_layout.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_layout_packed.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_lock_resolver.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_locked_resolve.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_no_pre_install_wheels.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_override_replace.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_overrides.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_pep_427.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_pex_bootstrapper.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_pex_entry_points.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_pex_import.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_pip.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_platform_pex_name_placeholder.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_reexec.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_reproducible.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_scie_desktop_install.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_scoped_repos.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_script_metadata.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_setproctitle.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_sh_boot.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_shebang_length_limit.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_variables.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/test_venv_editables.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/tools/commands/test_issue_2105.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/tools/commands/test_venv.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/conftest.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_install_wheel_multiple_site_packages_dirs.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_issue_1630.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_issue_1637.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_issue_1641.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_issue_1668.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_issue_1745.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_issue_1973.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_issue_2065.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_issue_2160.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_issue_2248.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_issue_3107.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_pep_829.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_venv_collisions_init_py.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_virtualenv.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/pip/test_log_analyzer.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/pip/test_tailer.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/pip/test_version.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/resolve/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/resolve/conftest.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/resolve/lockfile/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/resolve/lockfile/test_download_manager.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/resolve/lockfile/test_issue_2887.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/resolve/lockfile/test_json_codec.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/resolve/lockfile/test_lockfile.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/resolve/lockfile/test_pep_751.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/resolve/lockfile/test_requires_dist.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/resolve/pep_691/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/resolve/pep_691/test_api.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/resolve/pep_691/test_fingerprint_service.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/resolve/pep_691/test_model.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/resolve/test_dependency_groups.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/resolve/test_locked_resolve.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/resolve/test_locker.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/resolve/test_marker_env_conjunction_precedence.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/resolve/test_package_repository.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/resolve/test_path_mappings.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/resolve/test_pex_repository_resolver.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/resolve/test_resolved_requirement.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/resolve/test_resolver_options.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/resolve/test_script_metadata.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/resolve/test_target_options.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_artifact_url.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_atexit.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_atomic_directory.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_bdist_pex.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_common.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_compatibility.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_compiler.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_dependency_configuration.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_dependency_manager.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_dist_metadata.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_enum.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_environment.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_executables.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_execution_mode.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_executor.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_fetcher.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_finders.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_hashing.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_inherits_path_option.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_interpreter.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_interpreter_constraints.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_issue_3208.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_jobs.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_lang.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_os.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_packaging.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_pep_425.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_pep_508.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_pep_723.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_pex.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_pex_binary.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_pex_bootstrapper.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_pex_builder.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_pex_info.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_pex_root.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_pex_warnings.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_pip.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_platform.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_pth.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_pyvenv_cfg.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_requirements.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_resolver.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_sorted_tuple.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_specifier_sets.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_target_system.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_targets.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_tarjan.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_third_party.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_toml.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_util.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_variables.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_vendor.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_virtualenv.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_windows.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/test_zip_utils.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/tools/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/tools/commands/__init__.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/tools/commands/test_interpreter_command.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/tools/commands/test_repository.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/tests/tools/commands/test_venv.py +0 -0
- {pex-2.103.0 → pex-2.103.2}/uv.lock +0 -0
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# Release Notes
|
|
2
2
|
|
|
3
|
+
## 2.103.2
|
|
4
|
+
|
|
5
|
+
This release fixes `pex3 venv create --link-python` for a foreign platform when the venv is
|
|
6
|
+
installed from a `--pex-repository`. Populating the venv's sources re-resolved the repository PEX
|
|
7
|
+
against a local interpreter, which fails whenever that PEX holds no distributions for it, as is the
|
|
8
|
+
case for a PEX built for the foreign platform alone. The distributions already resolved for the
|
|
9
|
+
target are now used instead.
|
|
10
|
+
|
|
11
|
+
* Fix `pex3 venv create --link-python` for `--pex-repository`. (#3286)
|
|
12
|
+
|
|
13
|
+
## 2.103.1
|
|
14
|
+
|
|
15
|
+
This releases fixes import hygiene in the PEX runtime surrounding use of HTTPS fetches. These only
|
|
16
|
+
occur when creating venvs via `PEX_TOOLS=1` when using a system interpreter without the `ensurepip`
|
|
17
|
+
module. A practical benefit is runtime support for normal PEX use on interpreters without the `ssl`
|
|
18
|
+
module.
|
|
19
|
+
|
|
20
|
+
* Isolate `URLFetcher` use in the PEX runtime. (#3283)
|
|
21
|
+
|
|
3
22
|
## 2.103.0
|
|
4
23
|
|
|
5
24
|
This release adds `pex3 venv create --link-python`, which points the created venv's Python at a
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pex
|
|
3
|
-
Version: 2.103.
|
|
3
|
+
Version: 2.103.2
|
|
4
4
|
Summary: The PEX packaging toolchain.
|
|
5
5
|
Home-page: https://github.com/pex-tool/pex
|
|
6
|
-
Download-URL: https://github.com/pex-tool/pex/releases/download/v2.103.
|
|
6
|
+
Download-URL: https://github.com/pex-tool/pex/releases/download/v2.103.2/pex
|
|
7
7
|
Author: The PEX developers
|
|
8
8
|
Author-email: developers@pex-tool.org
|
|
9
9
|
License-Expression: Apache-2.0
|
|
10
|
-
Project-URL: Changelog, https://github.com/pex-tool/pex/blob/v2.103.
|
|
10
|
+
Project-URL: Changelog, https://github.com/pex-tool/pex/blob/v2.103.2/CHANGES.md
|
|
11
11
|
Project-URL: Documentation, https://docs.pex-tool.org/
|
|
12
|
-
Project-URL: Source, https://github.com/pex-tool/pex/tree/v2.103.
|
|
12
|
+
Project-URL: Source, https://github.com/pex-tool/pex/tree/v2.103.2
|
|
13
13
|
Keywords: package,executable,virtualenv,lock,freeze
|
|
14
14
|
Classifier: Development Status :: 5 - Production/Stable
|
|
15
15
|
Classifier: Intended Audience :: Developers
|
|
@@ -190,7 +190,7 @@ class CacheDir(Enum["CacheDir.Value"]):
|
|
|
190
190
|
|
|
191
191
|
PIP = Value(
|
|
192
192
|
"pip",
|
|
193
|
-
version=
|
|
193
|
+
version=4,
|
|
194
194
|
name="Pip Versions",
|
|
195
195
|
description="Isolated Pip caches and Pip PEXes Pex uses to resolve distributions.",
|
|
196
196
|
dependencies=[INSTALLED_WHEELS],
|
|
@@ -255,7 +255,7 @@ class CacheDir(Enum["CacheDir.Value"]):
|
|
|
255
255
|
|
|
256
256
|
UNZIPPED_PEXES = Value(
|
|
257
257
|
"unzipped_pexes",
|
|
258
|
-
version=
|
|
258
|
+
version=4,
|
|
259
259
|
name="Unzipped PEXes",
|
|
260
260
|
description="The unzipped PEX files executed on this machine.",
|
|
261
261
|
dependencies=[BOOTSTRAPS, USER_CODE, INSTALLED_WHEELS],
|
|
@@ -263,7 +263,7 @@ class CacheDir(Enum["CacheDir.Value"]):
|
|
|
263
263
|
|
|
264
264
|
VENVS = Value(
|
|
265
265
|
"venvs",
|
|
266
|
-
version=
|
|
266
|
+
version=4,
|
|
267
267
|
name="Virtual Environments",
|
|
268
268
|
description="Virtual environments generated at runtime for `--venv` mode PEXes.",
|
|
269
269
|
dependencies=[INSTALLED_WHEELS],
|
|
@@ -42,7 +42,7 @@ from pex.venv.installer_configuration import InstallerConfiguration
|
|
|
42
42
|
from pex.venv.virtualenv import Virtualenv
|
|
43
43
|
|
|
44
44
|
if TYPE_CHECKING:
|
|
45
|
-
from typing import Any, Dict,
|
|
45
|
+
from typing import Any, Dict, Optional, Sequence, Union
|
|
46
46
|
|
|
47
47
|
|
|
48
48
|
logger = logging.getLogger(__name__)
|
|
@@ -495,7 +495,7 @@ def _install_from_pex(
|
|
|
495
495
|
pex, # type: PEX
|
|
496
496
|
installer_configuration, # type: InstallerConfiguration
|
|
497
497
|
provenance, # type: Provenance
|
|
498
|
-
distributions, # type:
|
|
498
|
+
distributions, # type: Sequence[Distribution]
|
|
499
499
|
dest_dir, # type: str
|
|
500
500
|
hermetic_scripts, # type: bool
|
|
501
501
|
venv=None, # type: Optional[Virtualenv]
|
|
@@ -531,6 +531,7 @@ def _install_from_pex(
|
|
|
531
531
|
venv=venv,
|
|
532
532
|
pex=pex,
|
|
533
533
|
provenance=provenance,
|
|
534
|
+
activated_dists=distributions,
|
|
534
535
|
bin_path=installer_configuration.bin_path,
|
|
535
536
|
hermetic_scripts=hermetic_scripts,
|
|
536
537
|
)
|
|
@@ -121,23 +121,12 @@ else:
|
|
|
121
121
|
|
|
122
122
|
|
|
123
123
|
if PY3:
|
|
124
|
-
from http.client import HTTPConnection as HTTPConnection
|
|
125
|
-
from http.client import HTTPResponse as HTTPResponse
|
|
126
124
|
from urllib import parse as _url_parse
|
|
127
125
|
from urllib.error import HTTPError as HTTPError
|
|
128
126
|
from urllib.parse import quote as _url_quote
|
|
129
127
|
from urllib.parse import quote_plus as _url_quote_plus
|
|
130
128
|
from urllib.parse import unquote as _url_unquote
|
|
131
129
|
from urllib.parse import unquote_plus as _url_unquote_plus
|
|
132
|
-
from urllib.request import AbstractHTTPHandler as AbstractHTTPHandler
|
|
133
|
-
from urllib.request import FileHandler as FileHandler
|
|
134
|
-
from urllib.request import HTTPBasicAuthHandler as HTTPBasicAuthHandler
|
|
135
|
-
from urllib.request import HTTPDigestAuthHandler as HTTPDigestAuthHandler
|
|
136
|
-
from urllib.request import HTTPPasswordMgrWithDefaultRealm as HTTPPasswordMgrWithDefaultRealm
|
|
137
|
-
from urllib.request import HTTPSHandler as HTTPSHandler
|
|
138
|
-
from urllib.request import ProxyHandler as ProxyHandler
|
|
139
|
-
from urllib.request import Request as Request
|
|
140
|
-
from urllib.request import build_opener as build_opener
|
|
141
130
|
else:
|
|
142
131
|
from urllib import quote as _url_quote
|
|
143
132
|
from urllib import quote_plus as _url_quote_plus
|
|
@@ -145,18 +134,7 @@ else:
|
|
|
145
134
|
from urllib import unquote_plus as _url_unquote_plus
|
|
146
135
|
|
|
147
136
|
import urlparse as _url_parse
|
|
148
|
-
from httplib import HTTPConnection as HTTPConnection
|
|
149
|
-
from httplib import HTTPResponse as HTTPResponse
|
|
150
|
-
from urllib2 import AbstractHTTPHandler as AbstractHTTPHandler
|
|
151
|
-
from urllib2 import FileHandler as FileHandler
|
|
152
|
-
from urllib2 import HTTPBasicAuthHandler as HTTPBasicAuthHandler
|
|
153
|
-
from urllib2 import HTTPDigestAuthHandler as HTTPDigestAuthHandler
|
|
154
137
|
from urllib2 import HTTPError as HTTPError
|
|
155
|
-
from urllib2 import HTTPPasswordMgrWithDefaultRealm as HTTPPasswordMgrWithDefaultRealm
|
|
156
|
-
from urllib2 import HTTPSHandler as HTTPSHandler
|
|
157
|
-
from urllib2 import ProxyHandler as ProxyHandler
|
|
158
|
-
from urllib2 import Request as Request
|
|
159
|
-
from urllib2 import build_opener as build_opener
|
|
160
138
|
|
|
161
139
|
urlparse = _url_parse
|
|
162
140
|
url_unquote = _url_unquote
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Copyright 2026 Pex project contributors.
|
|
2
|
+
# Licensed under the Apache License, Version 2.0 (see LICENSE).
|
|
3
|
+
|
|
4
|
+
from __future__ import absolute_import
|
|
5
|
+
|
|
6
|
+
from pex.fetcher.ssl import initialize_ssl_context
|
|
7
|
+
from pex.fetcher.url import URLFetcher
|
|
8
|
+
|
|
9
|
+
__all__ = ["URLFetcher", "initialize_ssl_context"]
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# Copyright 2026 Pex project contributors.
|
|
2
|
+
# Licensed under the Apache License, Version 2.0 (see LICENSE).
|
|
3
|
+
|
|
4
|
+
from __future__ import absolute_import
|
|
5
|
+
|
|
6
|
+
import contextlib
|
|
7
|
+
import os
|
|
8
|
+
import sys
|
|
9
|
+
import threading
|
|
10
|
+
from contextlib import contextmanager
|
|
11
|
+
|
|
12
|
+
from pex.compatibility import in_main_thread
|
|
13
|
+
from pex.exceptions import production_assert
|
|
14
|
+
from pex.network_configuration import NetworkConfiguration
|
|
15
|
+
from pex.typing import TYPE_CHECKING
|
|
16
|
+
|
|
17
|
+
if TYPE_CHECKING:
|
|
18
|
+
from ssl import SSLContext
|
|
19
|
+
from typing import Dict, Iterator, Optional
|
|
20
|
+
|
|
21
|
+
import attr # vendor:skip
|
|
22
|
+
else:
|
|
23
|
+
from pex.third_party import attr
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@contextmanager
|
|
27
|
+
def guard_stdout():
|
|
28
|
+
# type: () -> Iterator[None]
|
|
29
|
+
# Under PyPy 3.9 and 3.10, `ssl.create_default_context` causes spurious informational text about
|
|
30
|
+
# SSL certs to be emitted to stdout; so we squelch this.
|
|
31
|
+
if hasattr(sys, "pypy_version_info") and sys.version_info[:2] >= (3, 9):
|
|
32
|
+
with open(os.devnull, "w") as fp:
|
|
33
|
+
# The `contextlib.redirect_stdout` function is available for Python 3.4+.
|
|
34
|
+
with contextlib.redirect_stdout(fp): # type: ignore[attr-defined]
|
|
35
|
+
yield
|
|
36
|
+
else:
|
|
37
|
+
yield
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
@attr.s(frozen=True)
|
|
41
|
+
class _CertConfig(object):
|
|
42
|
+
@classmethod
|
|
43
|
+
def create(cls, network_configuration=None):
|
|
44
|
+
# type: (Optional[NetworkConfiguration]) -> _CertConfig
|
|
45
|
+
if network_configuration is None:
|
|
46
|
+
return cls()
|
|
47
|
+
return cls(cert=network_configuration.cert, client_cert=network_configuration.client_cert)
|
|
48
|
+
|
|
49
|
+
cert = attr.ib(default=None) # type: Optional[str]
|
|
50
|
+
client_cert = attr.ib(default=None) # type: Optional[str]
|
|
51
|
+
|
|
52
|
+
def create_ssl_context(self):
|
|
53
|
+
# type: () -> SSLContext
|
|
54
|
+
|
|
55
|
+
# These shenanigans deserve some explanation, since, in OpenSSL 3.0 anyhow, it is perfectly
|
|
56
|
+
# fine to create an SSL Context (`SSL_CTX_new`) in any thread:
|
|
57
|
+
#
|
|
58
|
+
# It turns out that, in typical use, the CPython ssl module hides OpenSSL configuration
|
|
59
|
+
# issues through no real fault of its own. This is due to the fact that an import of the
|
|
60
|
+
# `ssl` module, which generally happens in the main thread, triggers, through instantiation
|
|
61
|
+
# of the `ssl.Purpose` enum type [^1] a call to OpenSSL's `OBJ_obj2nid` [^2][^3] which
|
|
62
|
+
# loads OpenSSL config but throws away the return value; thus hiding errors in config. Since
|
|
63
|
+
# the OpenSSL config scheme is to load it at most once per thread, this means subsequent
|
|
64
|
+
# OpenSSL call paths in the same thread that imported `ssl` (like the one generated via
|
|
65
|
+
# `ssl.create_default_context`) that _do_ check the return value of config loading [^4][^5],
|
|
66
|
+
# will not have to load config (since it's been done once already in the thread) and thus
|
|
67
|
+
# will not get the chance to check the config load function return value and will thus not
|
|
68
|
+
# error. This default behavior is almost certainly bad, since it allows invalid OpenSSL
|
|
69
|
+
# configs to go partially read at best. That said, this is the default Python
|
|
70
|
+
# single-threaded behavior and, right or wrong, we preserve that here by forcing our SSL
|
|
71
|
+
# initialization to happen in the main thread, keeping any OpenSSL misconfiguration silently
|
|
72
|
+
# ignored.
|
|
73
|
+
#
|
|
74
|
+
# The only solace here is that the use cases where OpenSSL config can be bad on a machine
|
|
75
|
+
# and the machine still function are narrow. The case we know of, that triggered creation of
|
|
76
|
+
# this machinery, involves the combination of a modern PBS Python [^6] (which has a vanilla
|
|
77
|
+
# OpenSSL statically linked into the Python binary) running on a RedHat OS that expresses
|
|
78
|
+
# custom RedHat configuration keys [^7] in its OpenSSL config. These custom keys are only
|
|
79
|
+
# supported by RedHat patches to OpenSSL and cause vanilla versions of OpenSSL to error when
|
|
80
|
+
# loading config due to unknown configuration options.
|
|
81
|
+
#
|
|
82
|
+
# [^1]: https://github.com/python/cpython/blob/5a173efa693a053bf4a059c82c1c06c82a9fa8fb/Lib/ssl.py#L394-L419
|
|
83
|
+
# [^2]: https://github.com/python/cpython/blob/5a173efa693a053bf4a059c82c1c06c82a9fa8fb/Modules/_ssl.c#L5534-L5552
|
|
84
|
+
# [^3]: https://github.com/openssl/openssl/blob/c3cc0f1386b0544383a61244a4beeb762b67498f/crypto/objects/obj_dat.c#L326-L340
|
|
85
|
+
# [^4]: https://github.com/openssl/openssl/blob/c3cc0f1386b0544383a61244a4beeb762b67498f/ssl/ssl_lib.c#L3194-L3212
|
|
86
|
+
# [^5]: https://github.com/openssl/openssl/blob/c3cc0f1386b0544383a61244a4beeb762b67498f/ssl/ssl_init.c#L86-L116
|
|
87
|
+
# [^6]: https://github.com/astral-sh/python-build-standalone/releases/tag/20240107
|
|
88
|
+
# [^7]: https://gitlab.com/redhat-crypto/fedora-crypto-policies/-/merge_requests/110/diffs#269a48e71ac25ad1d07ff00db2390834c8ba7596_11_16
|
|
89
|
+
production_assert(
|
|
90
|
+
in_main_thread(),
|
|
91
|
+
"An SSLContext must be initialized from the main thread. An attempt was made to "
|
|
92
|
+
"initialize an SSLContext for {cert_config} from thread {thread}.",
|
|
93
|
+
cert_config=self,
|
|
94
|
+
thread=threading.current_thread(),
|
|
95
|
+
)
|
|
96
|
+
with guard_stdout():
|
|
97
|
+
# We import ssl lazily as an affordance to PEXes that use gevent SSL monkeypatching,
|
|
98
|
+
# which requires (and checks) that the `ssl` module is not imported priory to the
|
|
99
|
+
# `from gevent import monkey; monkey.patch_all()` call.
|
|
100
|
+
#
|
|
101
|
+
# See: https://github.com/pex-tool/pex/issues/2415
|
|
102
|
+
import ssl
|
|
103
|
+
|
|
104
|
+
ssl_context = ssl.create_default_context(cafile=self.cert)
|
|
105
|
+
if self.client_cert:
|
|
106
|
+
ssl_context.load_cert_chain(self.client_cert)
|
|
107
|
+
return ssl_context
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
_SSL_CONTEXTS = {} # type: Dict[_CertConfig, SSLContext]
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
def get_ssl_context(network_configuration=None):
|
|
114
|
+
# type: (Optional[NetworkConfiguration]) -> SSLContext
|
|
115
|
+
cert_config = _CertConfig.create(network_configuration=network_configuration)
|
|
116
|
+
ssl_context = _SSL_CONTEXTS.get(cert_config)
|
|
117
|
+
if not ssl_context:
|
|
118
|
+
ssl_context = cert_config.create_ssl_context()
|
|
119
|
+
_SSL_CONTEXTS[cert_config] = ssl_context
|
|
120
|
+
return ssl_context
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
def initialize_ssl_context(network_configuration=None):
|
|
124
|
+
# type: (Optional[NetworkConfiguration]) -> None
|
|
125
|
+
get_ssl_context(network_configuration=network_configuration)
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
# N.B.: We eagerly initialize an SSLContext for the default case of no CA cert and no client cert.
|
|
129
|
+
# When a custom CA cert or client cert or both are configured, that code will need to call
|
|
130
|
+
# initialize_ssl_context on its own.
|
|
131
|
+
initialize_ssl_context()
|
|
@@ -3,153 +3,47 @@
|
|
|
3
3
|
|
|
4
4
|
from __future__ import absolute_import
|
|
5
5
|
|
|
6
|
-
import contextlib
|
|
7
6
|
import os
|
|
8
7
|
import socket
|
|
9
|
-
import sys
|
|
10
|
-
import threading
|
|
11
8
|
import time
|
|
12
9
|
from contextlib import closing, contextmanager
|
|
13
10
|
|
|
14
11
|
from pex.auth import PasswordDatabase, PasswordEntry
|
|
15
|
-
from pex.compatibility import
|
|
16
|
-
|
|
17
|
-
AbstractHTTPHandler,
|
|
18
|
-
FileHandler,
|
|
19
|
-
HTTPBasicAuthHandler,
|
|
20
|
-
HTTPConnection,
|
|
21
|
-
HTTPDigestAuthHandler,
|
|
22
|
-
HTTPError,
|
|
23
|
-
HTTPPasswordMgrWithDefaultRealm,
|
|
24
|
-
HTTPResponse,
|
|
25
|
-
HTTPSHandler,
|
|
26
|
-
ProxyHandler,
|
|
27
|
-
Request,
|
|
28
|
-
build_opener,
|
|
29
|
-
in_main_thread,
|
|
30
|
-
urlparse,
|
|
31
|
-
)
|
|
32
|
-
from pex.exceptions import production_assert
|
|
12
|
+
from pex.compatibility import PY2, PY3, HTTPError, urlparse
|
|
13
|
+
from pex.fetcher.ssl import get_ssl_context
|
|
33
14
|
from pex.network_configuration import NetworkConfiguration
|
|
34
15
|
from pex.typing import TYPE_CHECKING, cast
|
|
35
16
|
from pex.version import __version__
|
|
36
17
|
|
|
37
|
-
if
|
|
38
|
-
from
|
|
39
|
-
from
|
|
40
|
-
|
|
41
|
-
|
|
18
|
+
if PY3:
|
|
19
|
+
from http.client import HTTPConnection, HTTPResponse
|
|
20
|
+
from urllib.request import (
|
|
21
|
+
AbstractHTTPHandler,
|
|
22
|
+
FileHandler,
|
|
23
|
+
HTTPBasicAuthHandler,
|
|
24
|
+
HTTPDigestAuthHandler,
|
|
25
|
+
HTTPPasswordMgrWithDefaultRealm,
|
|
26
|
+
HTTPSHandler,
|
|
27
|
+
ProxyHandler,
|
|
28
|
+
Request,
|
|
29
|
+
build_opener,
|
|
30
|
+
)
|
|
42
31
|
else:
|
|
43
|
-
|
|
44
|
-
from
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
with contextlib.redirect_stdout(fp): # type: ignore[attr-defined]
|
|
56
|
-
yield
|
|
57
|
-
else:
|
|
58
|
-
yield
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
@attr.s(frozen=True)
|
|
62
|
-
class _CertConfig(object):
|
|
63
|
-
@classmethod
|
|
64
|
-
def create(cls, network_configuration=None):
|
|
65
|
-
# type: (Optional[NetworkConfiguration]) -> _CertConfig
|
|
66
|
-
if network_configuration is None:
|
|
67
|
-
return cls()
|
|
68
|
-
return cls(cert=network_configuration.cert, client_cert=network_configuration.client_cert)
|
|
69
|
-
|
|
70
|
-
cert = attr.ib(default=None) # type: Optional[str]
|
|
71
|
-
client_cert = attr.ib(default=None) # type: Optional[str]
|
|
72
|
-
|
|
73
|
-
def create_ssl_context(self):
|
|
74
|
-
# type: () -> SSLContext
|
|
75
|
-
|
|
76
|
-
# These shenanigans deserve some explanation, since, in OpenSSL 3.0 anyhow, it is perfectly
|
|
77
|
-
# fine to create an SSL Context (`SSL_CTX_new`) in any thread:
|
|
78
|
-
#
|
|
79
|
-
# It turns out that, in typical use, the CPython ssl module hides OpenSSL configuration
|
|
80
|
-
# issues through no real fault of its own. This is due to the fact that an import of the
|
|
81
|
-
# `ssl` module, which generally happens in the main thread, triggers, through instantiation
|
|
82
|
-
# of the `ssl.Purpose` enum type [^1] a call to OpenSSL's `OBJ_obj2nid` [^2][^3] which
|
|
83
|
-
# loads OpenSSL config but throws away the return value; thus hiding errors in config. Since
|
|
84
|
-
# the OpenSSL config scheme is to load it at most once per thread, this means subsequent
|
|
85
|
-
# OpenSSL call paths in the same thread that imported `ssl` (like the one generated via
|
|
86
|
-
# `ssl.create_default_context`) that _do_ check the return value of config loading [^4][^5],
|
|
87
|
-
# will not have to load config (since it's been done once already in the thread) and thus
|
|
88
|
-
# will not get the chance to check the config load function return value and will thus not
|
|
89
|
-
# error. This default behavior is almost certainly bad, since it allows invalid OpenSSL
|
|
90
|
-
# configs to go partially read at best. That said, this is the default Python
|
|
91
|
-
# single-threaded behavior and, right or wrong, we preserve that here by forcing our SSL
|
|
92
|
-
# initialization to happen in the main thread, keeping any OpenSSL misconfiguration silently
|
|
93
|
-
# ignored.
|
|
94
|
-
#
|
|
95
|
-
# The only solace here is that the use cases where OpenSSL config can be bad on a machine
|
|
96
|
-
# and the machine still function are narrow. The case we know of, that triggered creation of
|
|
97
|
-
# this machinery, involves the combination of a modern PBS Python [^6] (which has a vanilla
|
|
98
|
-
# OpenSSL statically linked into the Python binary) running on a RedHat OS that expresses
|
|
99
|
-
# custom RedHat configuration keys [^7] in its OpenSSL config. These custom keys are only
|
|
100
|
-
# supported by RedHat patches to OpenSSL and cause vanilla versions of OpenSSL to error when
|
|
101
|
-
# loading config due to unknown configuration options.
|
|
102
|
-
#
|
|
103
|
-
# [^1]: https://github.com/python/cpython/blob/5a173efa693a053bf4a059c82c1c06c82a9fa8fb/Lib/ssl.py#L394-L419
|
|
104
|
-
# [^2]: https://github.com/python/cpython/blob/5a173efa693a053bf4a059c82c1c06c82a9fa8fb/Modules/_ssl.c#L5534-L5552
|
|
105
|
-
# [^3]: https://github.com/openssl/openssl/blob/c3cc0f1386b0544383a61244a4beeb762b67498f/crypto/objects/obj_dat.c#L326-L340
|
|
106
|
-
# [^4]: https://github.com/openssl/openssl/blob/c3cc0f1386b0544383a61244a4beeb762b67498f/ssl/ssl_lib.c#L3194-L3212
|
|
107
|
-
# [^5]: https://github.com/openssl/openssl/blob/c3cc0f1386b0544383a61244a4beeb762b67498f/ssl/ssl_init.c#L86-L116
|
|
108
|
-
# [^6]: https://github.com/astral-sh/python-build-standalone/releases/tag/20240107
|
|
109
|
-
# [^7]: https://gitlab.com/redhat-crypto/fedora-crypto-policies/-/merge_requests/110/diffs#269a48e71ac25ad1d07ff00db2390834c8ba7596_11_16
|
|
110
|
-
production_assert(
|
|
111
|
-
in_main_thread(),
|
|
112
|
-
"An SSLContext must be initialized from the main thread. An attempt was made to "
|
|
113
|
-
"initialize an SSLContext for {cert_config} from thread {thread}.",
|
|
114
|
-
cert_config=self,
|
|
115
|
-
thread=threading.current_thread(),
|
|
116
|
-
)
|
|
117
|
-
with guard_stdout():
|
|
118
|
-
# We import ssl lazily as an affordance to PEXes that use gevent SSL monkeypatching,
|
|
119
|
-
# which requires (and checks) that the `ssl` module is not imported priory to the
|
|
120
|
-
# `from gevent import monkey; monkey.patch_all()` call.
|
|
121
|
-
#
|
|
122
|
-
# See: https://github.com/pex-tool/pex/issues/2415
|
|
123
|
-
import ssl
|
|
124
|
-
|
|
125
|
-
ssl_context = ssl.create_default_context(cafile=self.cert)
|
|
126
|
-
if self.client_cert:
|
|
127
|
-
ssl_context.load_cert_chain(self.client_cert)
|
|
128
|
-
return ssl_context
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
_SSL_CONTEXTS = {} # type: Dict[_CertConfig, SSLContext]
|
|
32
|
+
from httplib import HTTPConnection, HTTPResponse
|
|
33
|
+
from urllib2 import (
|
|
34
|
+
AbstractHTTPHandler,
|
|
35
|
+
FileHandler,
|
|
36
|
+
HTTPBasicAuthHandler,
|
|
37
|
+
HTTPDigestAuthHandler,
|
|
38
|
+
HTTPPasswordMgrWithDefaultRealm,
|
|
39
|
+
HTTPSHandler,
|
|
40
|
+
ProxyHandler,
|
|
41
|
+
Request,
|
|
42
|
+
build_opener,
|
|
43
|
+
)
|
|
132
44
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
# type: (Optional[NetworkConfiguration]) -> SSLContext
|
|
136
|
-
cert_config = _CertConfig.create(network_configuration=network_configuration)
|
|
137
|
-
ssl_context = _SSL_CONTEXTS.get(cert_config)
|
|
138
|
-
if not ssl_context:
|
|
139
|
-
ssl_context = cert_config.create_ssl_context()
|
|
140
|
-
_SSL_CONTEXTS[cert_config] = ssl_context
|
|
141
|
-
return ssl_context
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
def initialize_ssl_context(network_configuration=None):
|
|
145
|
-
# type: (Optional[NetworkConfiguration]) -> None
|
|
146
|
-
get_ssl_context(network_configuration=network_configuration)
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
# N.B.: We eagerly initialize an SSLContext for the default case of no CA cert and no client cert.
|
|
150
|
-
# When a custom CA cert or client cert or both are configured, that code will need to call
|
|
151
|
-
# initialize_ssl_context on its own.
|
|
152
|
-
initialize_ssl_context()
|
|
45
|
+
if TYPE_CHECKING:
|
|
46
|
+
from typing import Any, BinaryIO, Dict, Iterable, Iterator, Mapping, Optional, Text
|
|
153
47
|
|
|
154
48
|
|
|
155
49
|
class UnixHTTPConnection(HTTPConnection):
|
|
@@ -334,7 +228,7 @@ class URLFetcher(object):
|
|
|
334
228
|
# The fp is typed as Optional[...] for Python 2 only in the typeshed. A `None`
|
|
335
229
|
# can only be returned if a faulty custom handler is installed and we only
|
|
336
230
|
# install stdlib handlers.
|
|
337
|
-
fp = cast(BinaryIO, opener.open(request, timeout=self._timeout))
|
|
231
|
+
fp = cast("BinaryIO", opener.open(request, timeout=self._timeout))
|
|
338
232
|
try:
|
|
339
233
|
with closing(fp) as body_stream:
|
|
340
234
|
yield body_stream
|
|
@@ -568,7 +568,7 @@ class PEXBuilder(object):
|
|
|
568
568
|
)
|
|
569
569
|
|
|
570
570
|
bootstrap_digest = hashlib.sha1()
|
|
571
|
-
bootstrap_packages = ["cache", "fs", "repl", "third_party", "venv", "windows"]
|
|
571
|
+
bootstrap_packages = ["cache", "fetcher", "fs", "repl", "third_party", "venv", "windows"]
|
|
572
572
|
if self._pex_info.includes_tools:
|
|
573
573
|
bootstrap_packages.extend(["commands", "tools"])
|
|
574
574
|
|
|
@@ -19,7 +19,6 @@ from pex.dist_metadata import (
|
|
|
19
19
|
Requirement,
|
|
20
20
|
RequirementParseError,
|
|
21
21
|
)
|
|
22
|
-
from pex.fetcher import URLFetcher
|
|
23
22
|
from pex.orderedset import OrderedSet
|
|
24
23
|
from pex.pep_503 import ProjectName
|
|
25
24
|
from pex.third_party.packaging.markers import Marker
|
|
@@ -31,6 +30,8 @@ if TYPE_CHECKING:
|
|
|
31
30
|
from typing import FrozenSet, Iterable, Iterator, Match, Optional, Text, Tuple, Union
|
|
32
31
|
|
|
33
32
|
import attr # vendor:skip
|
|
33
|
+
|
|
34
|
+
from pex.fetcher import URLFetcher
|
|
34
35
|
else:
|
|
35
36
|
from pex.third_party import attr
|
|
36
37
|
|
|
@@ -360,6 +360,7 @@ def populate_venv_sources(
|
|
|
360
360
|
venv, # type: Virtualenv
|
|
361
361
|
pex, # type: PEX
|
|
362
362
|
provenance, # type: Provenance
|
|
363
|
+
activated_dists, # type: Sequence[Distribution]
|
|
363
364
|
bin_path=BinPath.FALSE, # type: BinPath.Value
|
|
364
365
|
hermetic_scripts=True, # type: bool
|
|
365
366
|
shebang=None, # type: Optional[str]
|
|
@@ -373,6 +374,7 @@ def populate_venv_sources(
|
|
|
373
374
|
target_dir=provenance.target_dir,
|
|
374
375
|
venv=venv,
|
|
375
376
|
pex=pex,
|
|
377
|
+
activated_dists=activated_dists,
|
|
376
378
|
shebang=shebang,
|
|
377
379
|
venv_python=provenance.target_python,
|
|
378
380
|
bin_path=bin_path,
|
|
@@ -420,10 +422,11 @@ def populate_venv_from_pex(
|
|
|
420
422
|
shebang = provenance.calculate_shebang(hermetic_scripts=hermetic_scripts)
|
|
421
423
|
top_level_source_packages = tuple(iter_top_level_source_packages(pex))
|
|
422
424
|
|
|
425
|
+
distributions = tuple(pex.resolve())
|
|
423
426
|
if scope in (InstallScope.ALL, InstallScope.DEPS_ONLY):
|
|
424
427
|
populate_venv_distributions(
|
|
425
428
|
venv=venv,
|
|
426
|
-
distributions=
|
|
429
|
+
distributions=distributions,
|
|
427
430
|
copy_mode=copy_mode,
|
|
428
431
|
hermetic_scripts=hermetic_scripts,
|
|
429
432
|
provenance=provenance,
|
|
@@ -434,6 +437,7 @@ def populate_venv_from_pex(
|
|
|
434
437
|
populate_venv_sources(
|
|
435
438
|
venv=venv,
|
|
436
439
|
pex=pex,
|
|
440
|
+
activated_dists=distributions,
|
|
437
441
|
bin_path=bin_path,
|
|
438
442
|
hermetic_scripts=hermetic_scripts,
|
|
439
443
|
provenance=provenance,
|
|
@@ -745,6 +749,7 @@ def _populate_first_party(
|
|
|
745
749
|
target_dir, # type: str
|
|
746
750
|
venv, # type: Virtualenv
|
|
747
751
|
pex, # type: PEX
|
|
752
|
+
activated_dists, # type: Sequence[Distribution]
|
|
748
753
|
shebang, # type: str
|
|
749
754
|
venv_python, # type: str
|
|
750
755
|
bin_path, # type: BinPath.Value
|
|
@@ -764,7 +769,7 @@ def _populate_first_party(
|
|
|
764
769
|
target_dir=target_dir,
|
|
765
770
|
venv=venv,
|
|
766
771
|
pex_info=pex_info,
|
|
767
|
-
activated_dists=
|
|
772
|
+
activated_dists=activated_dists,
|
|
768
773
|
shebang=shebang,
|
|
769
774
|
venv_python=venv_python,
|
|
770
775
|
bin_path=bin_path,
|
|
@@ -20,7 +20,6 @@ from pex.compatibility import get_stdout_bytes_buffer, safe_commonpath
|
|
|
20
20
|
from pex.dist_metadata import Distribution, find_distributions
|
|
21
21
|
from pex.enum import Enum
|
|
22
22
|
from pex.executor import Executor
|
|
23
|
-
from pex.fetcher import URLFetcher
|
|
24
23
|
from pex.fs import safe_symlink
|
|
25
24
|
from pex.interpreter import (
|
|
26
25
|
Platlib,
|
|
@@ -608,6 +607,8 @@ class Virtualenv(object):
|
|
|
608
607
|
get_pip = os.path.join(ENV.PEX_ROOT, "get-pip", dst_rel_path)
|
|
609
608
|
with atomic_directory(os.path.dirname(get_pip)) as atomic_dir:
|
|
610
609
|
if not atomic_dir.is_finalized():
|
|
610
|
+
from pex.fetcher import URLFetcher
|
|
611
|
+
|
|
611
612
|
with URLFetcher().get_body_stream(
|
|
612
613
|
"https://bootstrap.pypa.io/pip/" + url_rel_path
|
|
613
614
|
) as src_fp, safe_open(
|
|
@@ -14,7 +14,6 @@ from pex.atomic_directory import atomic_directory
|
|
|
14
14
|
from pex.cache.dirs import CacheDir
|
|
15
15
|
from pex.common import open_zip, safe_open
|
|
16
16
|
from pex.executables import chmod_plus_x
|
|
17
|
-
from pex.fetcher import URLFetcher
|
|
18
17
|
from pex.fs import safe_rename
|
|
19
18
|
from pex.os import Os
|
|
20
19
|
from pex.sysconfig import SysPlatform
|
|
@@ -67,6 +66,8 @@ def _fetch_stub(stub_name):
|
|
|
67
66
|
stub_dir = os.path.join(_CACHE_DIR, stub_name)
|
|
68
67
|
with atomic_directory(stub_dir) as atomic_dir:
|
|
69
68
|
if not atomic_dir.is_finalized():
|
|
69
|
+
from pex.fetcher import URLFetcher
|
|
70
|
+
|
|
70
71
|
with URLFetcher().get_body_stream(
|
|
71
72
|
"https://raw.githubusercontent.com/astral-sh/uv/refs/tags/{version}/crates/"
|
|
72
73
|
"uv-trampoline/trampolines/{stub_name}".format(
|
|
@@ -639,6 +639,48 @@ def test_foreign_target_link_python(
|
|
|
639
639
|
assert_foreign_venv(3, 11, expect_pyvenv_cfg_executable=link_python)
|
|
640
640
|
|
|
641
641
|
|
|
642
|
+
@pytest.mark.skipif(IS_WINDOWS, reason="This feature is not supported on Windows.")
|
|
643
|
+
def test_foreign_target_link_python_from_pex_repository(
|
|
644
|
+
tmpdir, # type: Tempdir
|
|
645
|
+
py310, # type: PythonInterpreter
|
|
646
|
+
):
|
|
647
|
+
# type: (...) -> None
|
|
648
|
+
|
|
649
|
+
foreign_platform = cross_arch_platform(3, 10)
|
|
650
|
+
pex_repository = tmpdir.join("psutil.pex")
|
|
651
|
+
run_pex_command(
|
|
652
|
+
args=["psutil==7.2.2", "--platform", foreign_platform, "-o", pex_repository]
|
|
653
|
+
).assert_success()
|
|
654
|
+
|
|
655
|
+
venv_dir = tmpdir.join("venv")
|
|
656
|
+
link_python = "/opt/python/bin/bob"
|
|
657
|
+
run_pex3(
|
|
658
|
+
"venv",
|
|
659
|
+
"create",
|
|
660
|
+
"-d",
|
|
661
|
+
venv_dir,
|
|
662
|
+
"--pex-repository",
|
|
663
|
+
pex_repository,
|
|
664
|
+
"--platform",
|
|
665
|
+
foreign_platform,
|
|
666
|
+
"--python-path",
|
|
667
|
+
py310.binary,
|
|
668
|
+
"--link-python",
|
|
669
|
+
link_python,
|
|
670
|
+
).assert_success()
|
|
671
|
+
|
|
672
|
+
assert {link_python} == {
|
|
673
|
+
os.readlink(python) for python in glob.glob(os.path.join(venv_dir, "bin", "python*"))
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
site_packages = os.path.join(
|
|
677
|
+
venv_dir, SysPlatform.CURRENT.venv_lib_dir(version=(3, 10)), "site-packages"
|
|
678
|
+
)
|
|
679
|
+
distributions = list(dist_metadata.find_distributions(search_path=[site_packages]))
|
|
680
|
+
assert 1 == len(distributions)
|
|
681
|
+
assert ProjectName("psutil") == distributions[0].metadata.project_name
|
|
682
|
+
|
|
683
|
+
|
|
642
684
|
def test_venv_update_target_mismatch(
|
|
643
685
|
tmpdir, # type: Any
|
|
644
686
|
foreign_platform, # type: str
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|