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.
Files changed (1459) hide show
  1. {pex-2.103.0 → pex-2.103.2}/CHANGES.md +19 -0
  2. {pex-2.103.0 → pex-2.103.2}/PKG-INFO +4 -4
  3. {pex-2.103.0 → pex-2.103.2}/pex/cache/dirs.py +3 -3
  4. {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/venv.py +3 -2
  5. {pex-2.103.0 → pex-2.103.2}/pex/compatibility.py +0 -22
  6. pex-2.103.2/pex/fetcher/__init__.py +9 -0
  7. pex-2.103.2/pex/fetcher/ssl.py +131 -0
  8. pex-2.103.0/pex/fetcher.py → pex-2.103.2/pex/fetcher/url.py +30 -136
  9. {pex-2.103.0 → pex-2.103.2}/pex/pex_builder.py +1 -1
  10. {pex-2.103.0 → pex-2.103.2}/pex/requirements.py +2 -1
  11. {pex-2.103.0 → pex-2.103.2}/pex/venv/installer.py +7 -2
  12. {pex-2.103.0 → pex-2.103.2}/pex/venv/virtualenv.py +2 -1
  13. {pex-2.103.0 → pex-2.103.2}/pex/version.py +1 -1
  14. {pex-2.103.0 → pex-2.103.2}/pex/windows/__init__.py +2 -1
  15. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_venv_create.py +42 -0
  16. {pex-2.103.0 → pex-2.103.2}/LICENSE +0 -0
  17. {pex-2.103.0 → pex-2.103.2}/MANIFEST.in +0 -0
  18. {pex-2.103.0 → pex-2.103.2}/README.rst +0 -0
  19. {pex-2.103.0 → pex-2.103.2}/assets/download.svg +0 -0
  20. {pex-2.103.0 → pex-2.103.2}/assets/github.svg +0 -0
  21. {pex-2.103.0 → pex-2.103.2}/assets/pdf.svg +0 -0
  22. {pex-2.103.0 → pex-2.103.2}/assets/pex-icon-512.png +0 -0
  23. {pex-2.103.0 → pex-2.103.2}/assets/pex-icon-512x512.png +0 -0
  24. {pex-2.103.0 → pex-2.103.2}/assets/pex-logo-dark.png +0 -0
  25. {pex-2.103.0 → pex-2.103.2}/assets/pex-logo-light.png +0 -0
  26. {pex-2.103.0 → pex-2.103.2}/assets/pex.svg +0 -0
  27. {pex-2.103.0 → pex-2.103.2}/assets/python.svg +0 -0
  28. {pex-2.103.0 → pex-2.103.2}/build-backend/pex_build/__init__.py +0 -0
  29. {pex-2.103.0 → pex-2.103.2}/build-backend/pex_build/setuptools/__init__.py +0 -0
  30. {pex-2.103.0 → pex-2.103.2}/build-backend/pex_build/setuptools/build.py +0 -0
  31. {pex-2.103.0 → pex-2.103.2}/docker/base/Dockerfile +0 -0
  32. {pex-2.103.0 → pex-2.103.2}/docker/base/install-pythons.py +0 -0
  33. {pex-2.103.0 → pex-2.103.2}/docker/base/new-versions.toml +0 -0
  34. {pex-2.103.0 → pex-2.103.2}/docker/base/old-versions.toml +0 -0
  35. {pex-2.103.0 → pex-2.103.2}/docker/cache/Dockerfile +0 -0
  36. {pex-2.103.0 → pex-2.103.2}/docker/cache/populate_cache.sh +0 -0
  37. {pex-2.103.0 → pex-2.103.2}/docker/user/Dockerfile +0 -0
  38. {pex-2.103.0 → pex-2.103.2}/docker/user/create_docker_image_user.sh +0 -0
  39. {pex-2.103.0 → pex-2.103.2}/docs/_ext/sphinx_pex/__init__.py +0 -0
  40. {pex-2.103.0 → pex-2.103.2}/docs/_ext/sphinx_pex/vars.py +0 -0
  41. {pex-2.103.0 → pex-2.103.2}/docs/_static/pex-icon.png +0 -0
  42. {pex-2.103.0 → pex-2.103.2}/docs/_static/pex-logo-dark.png +0 -0
  43. {pex-2.103.0 → pex-2.103.2}/docs/_static/pex-logo-light.png +0 -0
  44. {pex-2.103.0 → pex-2.103.2}/docs/_templates/page.html +0 -0
  45. {pex-2.103.0 → pex-2.103.2}/docs/_templates/search.html +0 -0
  46. {pex-2.103.0 → pex-2.103.2}/docs/api/vars.md +0 -0
  47. {pex-2.103.0 → pex-2.103.2}/docs/buildingpex.rst +0 -0
  48. {pex-2.103.0 → pex-2.103.2}/docs/conf.py +0 -0
  49. {pex-2.103.0 → pex-2.103.2}/docs/index.rst +0 -0
  50. {pex-2.103.0 → pex-2.103.2}/docs/recipes.rst +0 -0
  51. {pex-2.103.0 → pex-2.103.2}/docs/scie.md +0 -0
  52. {pex-2.103.0 → pex-2.103.2}/docs/whatispex.rst +0 -0
  53. {pex-2.103.0 → pex-2.103.2}/duvrc.sh +0 -0
  54. {pex-2.103.0 → pex-2.103.2}/mypy.ini +0 -0
  55. {pex-2.103.0 → pex-2.103.2}/package/__init__.py +0 -0
  56. {pex-2.103.0 → pex-2.103.2}/package/complete-platforms/linux-aarch64.json +0 -0
  57. {pex-2.103.0 → pex-2.103.2}/package/complete-platforms/linux-armv7l.json +0 -0
  58. {pex-2.103.0 → pex-2.103.2}/package/complete-platforms/linux-riscv64.json +0 -0
  59. {pex-2.103.0 → pex-2.103.2}/package/complete-platforms/linux-x86_64.json +0 -0
  60. {pex-2.103.0 → pex-2.103.2}/package/complete-platforms/macos-aarch64.json +0 -0
  61. {pex-2.103.0 → pex-2.103.2}/package/complete-platforms/macos-x86_64.json +0 -0
  62. {pex-2.103.0 → pex-2.103.2}/package/complete-platforms/musl-linux-aarch64.json +0 -0
  63. {pex-2.103.0 → pex-2.103.2}/package/complete-platforms/musl-linux-x86_64.json +0 -0
  64. {pex-2.103.0 → pex-2.103.2}/package/package.toml +0 -0
  65. {pex-2.103.0 → pex-2.103.2}/package/pex-scie.lock +0 -0
  66. {pex-2.103.0 → pex-2.103.2}/package/scie_config.py +0 -0
  67. {pex-2.103.0 → pex-2.103.2}/pex/__init__.py +0 -0
  68. {pex-2.103.0 → pex-2.103.2}/pex/__main__.py +0 -0
  69. {pex-2.103.0 → pex-2.103.2}/pex/argparse.py +0 -0
  70. {pex-2.103.0 → pex-2.103.2}/pex/artifact_url.py +0 -0
  71. {pex-2.103.0 → pex-2.103.2}/pex/atexit.py +0 -0
  72. {pex-2.103.0 → pex-2.103.2}/pex/atomic_directory.py +0 -0
  73. {pex-2.103.0 → pex-2.103.2}/pex/attrs.py +0 -0
  74. {pex-2.103.0 → pex-2.103.2}/pex/auth.py +0 -0
  75. {pex-2.103.0 → pex-2.103.2}/pex/bin/__init__.py +0 -0
  76. {pex-2.103.0 → pex-2.103.2}/pex/bin/pex.py +0 -0
  77. {pex-2.103.0 → pex-2.103.2}/pex/bootstrap.py +0 -0
  78. {pex-2.103.0 → pex-2.103.2}/pex/build_backend/__init__.py +0 -0
  79. {pex-2.103.0 → pex-2.103.2}/pex/build_backend/configuration.py +0 -0
  80. {pex-2.103.0 → pex-2.103.2}/pex/build_backend/pylock.py +0 -0
  81. {pex-2.103.0 → pex-2.103.2}/pex/build_backend/wrap.py +0 -0
  82. {pex-2.103.0 → pex-2.103.2}/pex/build_properties.py +0 -0
  83. {pex-2.103.0 → pex-2.103.2}/pex/build_system/__init__.py +0 -0
  84. {pex-2.103.0 → pex-2.103.2}/pex/build_system/pep_517.py +0 -0
  85. {pex-2.103.0 → pex-2.103.2}/pex/build_system/pep_518.py +0 -0
  86. {pex-2.103.0 → pex-2.103.2}/pex/cache/__init__.py +0 -0
  87. {pex-2.103.0 → pex-2.103.2}/pex/cache/access.py +0 -0
  88. {pex-2.103.0 → pex-2.103.2}/pex/cache/prunable.py +0 -0
  89. {pex-2.103.0 → pex-2.103.2}/pex/cache/root.py +0 -0
  90. {pex-2.103.0 → pex-2.103.2}/pex/cli/__init__.py +0 -0
  91. {pex-2.103.0 → pex-2.103.2}/pex/cli/__main__.py +0 -0
  92. {pex-2.103.0 → pex-2.103.2}/pex/cli/command.py +0 -0
  93. {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/__init__.py +0 -0
  94. {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/cache/__init__.py +0 -0
  95. {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/cache/bytes.py +0 -0
  96. {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/cache/command.py +0 -0
  97. {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/cache/du.py +0 -0
  98. {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/cache_aware.py +0 -0
  99. {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/docs.py +0 -0
  100. {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/interpreter.py +0 -0
  101. {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/lock.py +0 -0
  102. {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/pip/__init__.py +0 -0
  103. {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/pip/core.py +0 -0
  104. {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/pip/download.py +0 -0
  105. {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/pip/wheel.py +0 -0
  106. {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/run.py +0 -0
  107. {pex-2.103.0 → pex-2.103.2}/pex/cli/commands/scie.py +0 -0
  108. {pex-2.103.0 → pex-2.103.2}/pex/cli/pex.py +0 -0
  109. {pex-2.103.0 → pex-2.103.2}/pex/cli_util.py +0 -0
  110. {pex-2.103.0 → pex-2.103.2}/pex/commands/__init__.py +0 -0
  111. {pex-2.103.0 → pex-2.103.2}/pex/commands/command.py +0 -0
  112. {pex-2.103.0 → pex-2.103.2}/pex/common.py +0 -0
  113. {pex-2.103.0 → pex-2.103.2}/pex/compiler.py +0 -0
  114. {pex-2.103.0 → pex-2.103.2}/pex/dependency_configuration.py +0 -0
  115. {pex-2.103.0 → pex-2.103.2}/pex/dependency_manager.py +0 -0
  116. {pex-2.103.0 → pex-2.103.2}/pex/dist_metadata.py +0 -0
  117. {pex-2.103.0 → pex-2.103.2}/pex/distutils/__init__.py +0 -0
  118. {pex-2.103.0 → pex-2.103.2}/pex/distutils/commands/__init__.py +0 -0
  119. {pex-2.103.0 → pex-2.103.2}/pex/distutils/commands/bdist_pex.py +0 -0
  120. {pex-2.103.0 → pex-2.103.2}/pex/docs/__init__.py +0 -0
  121. {pex-2.103.0 → pex-2.103.2}/pex/docs/command.py +0 -0
  122. {pex-2.103.0 → pex-2.103.2}/pex/entry_points_txt.py +0 -0
  123. {pex-2.103.0 → pex-2.103.2}/pex/enum.py +0 -0
  124. {pex-2.103.0 → pex-2.103.2}/pex/environment.py +0 -0
  125. {pex-2.103.0 → pex-2.103.2}/pex/exceptions.py +0 -0
  126. {pex-2.103.0 → pex-2.103.2}/pex/executables.py +0 -0
  127. {pex-2.103.0 → pex-2.103.2}/pex/executor.py +0 -0
  128. {pex-2.103.0 → pex-2.103.2}/pex/finders.py +0 -0
  129. {pex-2.103.0 → pex-2.103.2}/pex/fingerprinted_distribution.py +0 -0
  130. {pex-2.103.0 → pex-2.103.2}/pex/fs/__init__.py +0 -0
  131. {pex-2.103.0 → pex-2.103.2}/pex/fs/_unix.py +0 -0
  132. {pex-2.103.0 → pex-2.103.2}/pex/fs/_windows.py +0 -0
  133. {pex-2.103.0 → pex-2.103.2}/pex/fs/lock.py +0 -0
  134. {pex-2.103.0 → pex-2.103.2}/pex/globals.py +0 -0
  135. {pex-2.103.0 → pex-2.103.2}/pex/hashing.py +0 -0
  136. {pex-2.103.0 → pex-2.103.2}/pex/hashing.py.lck +0 -0
  137. {pex-2.103.0 → pex-2.103.2}/pex/http/__init__.py +0 -0
  138. {pex-2.103.0 → pex-2.103.2}/pex/http/server.py +0 -0
  139. {pex-2.103.0 → pex-2.103.2}/pex/inherit_path.py +0 -0
  140. {pex-2.103.0 → pex-2.103.2}/pex/installed_wheel.py +0 -0
  141. {pex-2.103.0 → pex-2.103.2}/pex/interpreter.py +0 -0
  142. {pex-2.103.0 → pex-2.103.2}/pex/interpreter_constraints.py +0 -0
  143. {pex-2.103.0 → pex-2.103.2}/pex/interpreter_implementation.py +0 -0
  144. {pex-2.103.0 → pex-2.103.2}/pex/interpreter_selection_strategy.py +0 -0
  145. {pex-2.103.0 → pex-2.103.2}/pex/job_start_method.py +0 -0
  146. {pex-2.103.0 → pex-2.103.2}/pex/jobs.py +0 -0
  147. {pex-2.103.0 → pex-2.103.2}/pex/lang.py +0 -0
  148. {pex-2.103.0 → pex-2.103.2}/pex/layout.py +0 -0
  149. {pex-2.103.0 → pex-2.103.2}/pex/namespace.py +0 -0
  150. {pex-2.103.0 → pex-2.103.2}/pex/network_configuration.py +0 -0
  151. {pex-2.103.0 → pex-2.103.2}/pex/orderedset.py +0 -0
  152. {pex-2.103.0 → pex-2.103.2}/pex/os.py +0 -0
  153. {pex-2.103.0 → pex-2.103.2}/pex/pep_376.py +0 -0
  154. {pex-2.103.0 → pex-2.103.2}/pex/pep_425.py +0 -0
  155. {pex-2.103.0 → pex-2.103.2}/pex/pep_427.py +0 -0
  156. {pex-2.103.0 → pex-2.103.2}/pex/pep_440.py +0 -0
  157. {pex-2.103.0 → pex-2.103.2}/pex/pep_503.py +0 -0
  158. {pex-2.103.0 → pex-2.103.2}/pex/pep_508.py +0 -0
  159. {pex-2.103.0 → pex-2.103.2}/pex/pep_723.py +0 -0
  160. {pex-2.103.0 → pex-2.103.2}/pex/pex.py +0 -0
  161. {pex-2.103.0 → pex-2.103.2}/pex/pex_boot.py +0 -0
  162. {pex-2.103.0 → pex-2.103.2}/pex/pex_bootstrapper.py +0 -0
  163. {pex-2.103.0 → pex-2.103.2}/pex/pex_info.py +0 -0
  164. {pex-2.103.0 → pex-2.103.2}/pex/pex_root.py +0 -0
  165. {pex-2.103.0 → pex-2.103.2}/pex/pex_warnings.py +0 -0
  166. {pex-2.103.0 → pex-2.103.2}/pex/pip/__init__.py +0 -0
  167. {pex-2.103.0 → pex-2.103.2}/pex/pip/dependencies/__init__.py +0 -0
  168. {pex-2.103.0 → pex-2.103.2}/pex/pip/dependencies/requires.py +0 -0
  169. {pex-2.103.0 → pex-2.103.2}/pex/pip/download_observer.py +0 -0
  170. {pex-2.103.0 → pex-2.103.2}/pex/pip/foreign_platform/__init__.py +0 -0
  171. {pex-2.103.0 → pex-2.103.2}/pex/pip/foreign_platform/markers.py +0 -0
  172. {pex-2.103.0 → pex-2.103.2}/pex/pip/foreign_platform/requires_python.py +0 -0
  173. {pex-2.103.0 → pex-2.103.2}/pex/pip/foreign_platform/tags.py +0 -0
  174. {pex-2.103.0 → pex-2.103.2}/pex/pip/installation.py +0 -0
  175. {pex-2.103.0 → pex-2.103.2}/pex/pip/local_project.py +0 -0
  176. {pex-2.103.0 → pex-2.103.2}/pex/pip/log_analyzer.py +0 -0
  177. {pex-2.103.0 → pex-2.103.2}/pex/pip/package_repositories/__init__.py +0 -0
  178. {pex-2.103.0 → pex-2.103.2}/pex/pip/package_repositories/link_collector.py +0 -0
  179. {pex-2.103.0 → pex-2.103.2}/pex/pip/tailer.py +0 -0
  180. {pex-2.103.0 → pex-2.103.2}/pex/pip/tool.py +0 -0
  181. {pex-2.103.0 → pex-2.103.2}/pex/pip/vcs.py +0 -0
  182. {pex-2.103.0 → pex-2.103.2}/pex/pip/version.py +0 -0
  183. {pex-2.103.0 → pex-2.103.2}/pex/platforms.py +0 -0
  184. {pex-2.103.0 → pex-2.103.2}/pex/pth.py +0 -0
  185. {pex-2.103.0 → pex-2.103.2}/pex/pyenv.py +0 -0
  186. {pex-2.103.0 → pex-2.103.2}/pex/rank.py +0 -0
  187. {pex-2.103.0 → pex-2.103.2}/pex/rc/__init__.py +0 -0
  188. {pex-2.103.0 → pex-2.103.2}/pex/rc/model.py +0 -0
  189. {pex-2.103.0 → pex-2.103.2}/pex/rc/pexrc.py +0 -0
  190. {pex-2.103.0 → pex-2.103.2}/pex/repl/__init__.py +0 -0
  191. {pex-2.103.0 → pex-2.103.2}/pex/repl/custom.py +0 -0
  192. {pex-2.103.0 → pex-2.103.2}/pex/repl/pex_repl.py +0 -0
  193. {pex-2.103.0 → pex-2.103.2}/pex/requirement_key.py +0 -0
  194. {pex-2.103.0 → pex-2.103.2}/pex/resolve/__init__.py +0 -0
  195. {pex-2.103.0 → pex-2.103.2}/pex/resolve/abbreviated_platforms.py +0 -0
  196. {pex-2.103.0 → pex-2.103.2}/pex/resolve/config.py +0 -0
  197. {pex-2.103.0 → pex-2.103.2}/pex/resolve/configured_resolve.py +0 -0
  198. {pex-2.103.0 → pex-2.103.2}/pex/resolve/configured_resolver.py +0 -0
  199. {pex-2.103.0 → pex-2.103.2}/pex/resolve/downloads.py +0 -0
  200. {pex-2.103.0 → pex-2.103.2}/pex/resolve/lock_downloader.py +0 -0
  201. {pex-2.103.0 → pex-2.103.2}/pex/resolve/lock_resolver.py +0 -0
  202. {pex-2.103.0 → pex-2.103.2}/pex/resolve/locked_resolve.py +0 -0
  203. {pex-2.103.0 → pex-2.103.2}/pex/resolve/locker.py +0 -0
  204. {pex-2.103.0 → pex-2.103.2}/pex/resolve/locker_patches.py +0 -0
  205. {pex-2.103.0 → pex-2.103.2}/pex/resolve/lockfile/__init__.py +0 -0
  206. {pex-2.103.0 → pex-2.103.2}/pex/resolve/lockfile/create.py +0 -0
  207. {pex-2.103.0 → pex-2.103.2}/pex/resolve/lockfile/download_manager.py +0 -0
  208. {pex-2.103.0 → pex-2.103.2}/pex/resolve/lockfile/json_codec.py +0 -0
  209. {pex-2.103.0 → pex-2.103.2}/pex/resolve/lockfile/model.py +0 -0
  210. {pex-2.103.0 → pex-2.103.2}/pex/resolve/lockfile/pep_751.py +0 -0
  211. {pex-2.103.0 → pex-2.103.2}/pex/resolve/lockfile/requires_dist.py +0 -0
  212. {pex-2.103.0 → pex-2.103.2}/pex/resolve/lockfile/subset.py +0 -0
  213. {pex-2.103.0 → pex-2.103.2}/pex/resolve/lockfile/targets.py +0 -0
  214. {pex-2.103.0 → pex-2.103.2}/pex/resolve/lockfile/tarjan.py +0 -0
  215. {pex-2.103.0 → pex-2.103.2}/pex/resolve/lockfile/updater.py +0 -0
  216. {pex-2.103.0 → pex-2.103.2}/pex/resolve/package_repository.py +0 -0
  217. {pex-2.103.0 → pex-2.103.2}/pex/resolve/path_mappings.py +0 -0
  218. {pex-2.103.0 → pex-2.103.2}/pex/resolve/pep_691/__init__.py +0 -0
  219. {pex-2.103.0 → pex-2.103.2}/pex/resolve/pep_691/api.py +0 -0
  220. {pex-2.103.0 → pex-2.103.2}/pex/resolve/pep_691/fingerprint_service.py +0 -0
  221. {pex-2.103.0 → pex-2.103.2}/pex/resolve/pep_691/model.py +0 -0
  222. {pex-2.103.0 → pex-2.103.2}/pex/resolve/pex_repository_resolver.py +0 -0
  223. {pex-2.103.0 → pex-2.103.2}/pex/resolve/pre_resolved_resolver.py +0 -0
  224. {pex-2.103.0 → pex-2.103.2}/pex/resolve/project.py +0 -0
  225. {pex-2.103.0 → pex-2.103.2}/pex/resolve/requirement_configuration.py +0 -0
  226. {pex-2.103.0 → pex-2.103.2}/pex/resolve/requirement_options.py +0 -0
  227. {pex-2.103.0 → pex-2.103.2}/pex/resolve/resolved_requirement.py +0 -0
  228. {pex-2.103.0 → pex-2.103.2}/pex/resolve/resolver_configuration.py +0 -0
  229. {pex-2.103.0 → pex-2.103.2}/pex/resolve/resolver_options.py +0 -0
  230. {pex-2.103.0 → pex-2.103.2}/pex/resolve/resolvers.py +0 -0
  231. {pex-2.103.0 → pex-2.103.2}/pex/resolve/script_metadata.py +0 -0
  232. {pex-2.103.0 → pex-2.103.2}/pex/resolve/target_configuration.py +0 -0
  233. {pex-2.103.0 → pex-2.103.2}/pex/resolve/target_options.py +0 -0
  234. {pex-2.103.0 → pex-2.103.2}/pex/resolve/target_system.py +0 -0
  235. {pex-2.103.0 → pex-2.103.2}/pex/resolve/venv_resolver.py +0 -0
  236. {pex-2.103.0 → pex-2.103.2}/pex/resolver.py +0 -0
  237. {pex-2.103.0 → pex-2.103.2}/pex/result.py +0 -0
  238. {pex-2.103.0 → pex-2.103.2}/pex/scie/__init__.py +0 -0
  239. {pex-2.103.0 → pex-2.103.2}/pex/scie/configure-binding.py +0 -0
  240. {pex-2.103.0 → pex-2.103.2}/pex/scie/model.py +0 -0
  241. {pex-2.103.0 → pex-2.103.2}/pex/scie/resource-binding.py +0 -0
  242. {pex-2.103.0 → pex-2.103.2}/pex/scie/science.py +0 -0
  243. {pex-2.103.0 → pex-2.103.2}/pex/sdist.py +0 -0
  244. {pex-2.103.0 → pex-2.103.2}/pex/sh_boot.py +0 -0
  245. {pex-2.103.0 → pex-2.103.2}/pex/sorted_tuple.py +0 -0
  246. {pex-2.103.0 → pex-2.103.2}/pex/specifier_sets.py +0 -0
  247. {pex-2.103.0 → pex-2.103.2}/pex/subprocess.py +0 -0
  248. {pex-2.103.0 → pex-2.103.2}/pex/sysconfig.py +0 -0
  249. {pex-2.103.0 → pex-2.103.2}/pex/targets.py +0 -0
  250. {pex-2.103.0 → pex-2.103.2}/pex/third_party/__init__.py +0 -0
  251. {pex-2.103.0 → pex-2.103.2}/pex/toml.py +0 -0
  252. {pex-2.103.0 → pex-2.103.2}/pex/tools/__init__.py +0 -0
  253. {pex-2.103.0 → pex-2.103.2}/pex/tools/__main__.py +0 -0
  254. {pex-2.103.0 → pex-2.103.2}/pex/tools/command.py +0 -0
  255. {pex-2.103.0 → pex-2.103.2}/pex/tools/commands/__init__.py +0 -0
  256. {pex-2.103.0 → pex-2.103.2}/pex/tools/commands/digraph.py +0 -0
  257. {pex-2.103.0 → pex-2.103.2}/pex/tools/commands/graph.py +0 -0
  258. {pex-2.103.0 → pex-2.103.2}/pex/tools/commands/info.py +0 -0
  259. {pex-2.103.0 → pex-2.103.2}/pex/tools/commands/interpreter.py +0 -0
  260. {pex-2.103.0 → pex-2.103.2}/pex/tools/commands/repository.py +0 -0
  261. {pex-2.103.0 → pex-2.103.2}/pex/tools/commands/venv.py +0 -0
  262. {pex-2.103.0 → pex-2.103.2}/pex/tools/main.py +0 -0
  263. {pex-2.103.0 → pex-2.103.2}/pex/tracer.py +0 -0
  264. {pex-2.103.0 → pex-2.103.2}/pex/typing.py +0 -0
  265. {pex-2.103.0 → pex-2.103.2}/pex/util.py +0 -0
  266. {pex-2.103.0 → pex-2.103.2}/pex/variables.py +0 -0
  267. {pex-2.103.0 → pex-2.103.2}/pex/vendor/README.md +0 -0
  268. {pex-2.103.0 → pex-2.103.2}/pex/vendor/__init__.py +0 -0
  269. {pex-2.103.0 → pex-2.103.2}/pex/vendor/__main__.py +0 -0
  270. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/__init__.py +0 -0
  271. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/.layout.json +0 -0
  272. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/__init__.py +0 -0
  273. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/ansicolors-1.1.8.dist-info/DESCRIPTION.rst +0 -0
  274. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/ansicolors-1.1.8.dist-info/METADATA +0 -0
  275. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/ansicolors-1.1.8.dist-info/RECORD +0 -0
  276. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/ansicolors-1.1.8.dist-info/WHEEL +0 -0
  277. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/ansicolors-1.1.8.dist-info/metadata.json +0 -0
  278. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/ansicolors-1.1.8.dist-info/top_level.txt +0 -0
  279. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/ansicolors-1.1.8.pex-info/original-whl-info.json +0 -0
  280. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/colors/__init__.py +0 -0
  281. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/colors/colors.py +0 -0
  282. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/colors/csscolors.py +0 -0
  283. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/colors/version.py +0 -0
  284. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/ansicolors/constraints.txt +0 -0
  285. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/appdirs/.layout.json +0 -0
  286. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/appdirs/__init__.py +0 -0
  287. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/appdirs/appdirs-1.4.4.dist-info/LICENSE.txt +0 -0
  288. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/appdirs/appdirs-1.4.4.dist-info/METADATA +0 -0
  289. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/appdirs/appdirs-1.4.4.dist-info/RECORD +0 -0
  290. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/appdirs/appdirs-1.4.4.dist-info/WHEEL +0 -0
  291. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/appdirs/appdirs-1.4.4.dist-info/top_level.txt +0 -0
  292. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/appdirs/appdirs-1.4.4.pex-info/original-whl-info.json +0 -0
  293. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/appdirs/appdirs.py +0 -0
  294. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/appdirs/constraints.txt +0 -0
  295. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/.layout.json +0 -0
  296. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/__init__.py +0 -0
  297. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/__init__.py +0 -0
  298. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/__init__.pyi +0 -0
  299. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/_cmp.py +0 -0
  300. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/_cmp.pyi +0 -0
  301. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/_compat.py +0 -0
  302. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/_config.py +0 -0
  303. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/_funcs.py +0 -0
  304. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/_make.py +0 -0
  305. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/_next_gen.py +0 -0
  306. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/_version_info.py +0 -0
  307. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/_version_info.pyi +0 -0
  308. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/converters.py +0 -0
  309. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/converters.pyi +0 -0
  310. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/exceptions.py +0 -0
  311. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/exceptions.pyi +0 -0
  312. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/filters.py +0 -0
  313. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/filters.pyi +0 -0
  314. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/py.typed +0 -0
  315. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/setters.py +0 -0
  316. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/setters.pyi +0 -0
  317. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/validators.py +0 -0
  318. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attr/validators.pyi +0 -0
  319. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs/__init__.py +0 -0
  320. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs/__init__.pyi +0 -0
  321. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs/converters.py +0 -0
  322. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs/exceptions.py +0 -0
  323. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs/filters.py +0 -0
  324. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs/py.typed +0 -0
  325. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs/setters.py +0 -0
  326. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs/validators.py +0 -0
  327. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs-21.5.0.dev0.dist-info/AUTHORS.rst +0 -0
  328. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs-21.5.0.dev0.dist-info/LICENSE +0 -0
  329. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs-21.5.0.dev0.dist-info/METADATA +0 -0
  330. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs-21.5.0.dev0.dist-info/RECORD +0 -0
  331. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs-21.5.0.dev0.dist-info/WHEEL +0 -0
  332. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/attrs/attrs-21.5.0.dev0.dist-info/top_level.txt +0 -0
  333. {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
  334. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/.layout.json +0 -0
  335. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/__init__.py +0 -0
  336. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/constraints.txt +0 -0
  337. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging/__about__.py +0 -0
  338. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging/__init__.py +0 -0
  339. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging/_compat.py +0 -0
  340. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging/_structures.py +0 -0
  341. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging/_typing.py +0 -0
  342. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging/markers.py +0 -0
  343. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging/py.typed +0 -0
  344. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging/requirements.py +0 -0
  345. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging/specifiers.py +0 -0
  346. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging/tags.py +0 -0
  347. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging/utils.py +0 -0
  348. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging/version.py +0 -0
  349. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging-20.9.dist-info/LICENSE +0 -0
  350. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging-20.9.dist-info/LICENSE.APACHE +0 -0
  351. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging-20.9.dist-info/LICENSE.BSD +0 -0
  352. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging-20.9.dist-info/METADATA +0 -0
  353. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging-20.9.dist-info/RECORD +0 -0
  354. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging-20.9.dist-info/WHEEL +0 -0
  355. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/packaging-20.9.dist-info/top_level.txt +0 -0
  356. {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
  357. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/pyparsing-2.4.7.dist-info/LICENSE +0 -0
  358. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/pyparsing-2.4.7.dist-info/METADATA +0 -0
  359. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/pyparsing-2.4.7.dist-info/RECORD +0 -0
  360. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/pyparsing-2.4.7.dist-info/WHEEL +0 -0
  361. {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
  362. {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
  363. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_20_9/pyparsing.py +0 -0
  364. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/.layout.json +0 -0
  365. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/__init__.py +0 -0
  366. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/constraints.txt +0 -0
  367. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging/__about__.py +0 -0
  368. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging/__init__.py +0 -0
  369. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging/_manylinux.py +0 -0
  370. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging/_musllinux.py +0 -0
  371. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging/_structures.py +0 -0
  372. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging/markers.py +0 -0
  373. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging/py.typed +0 -0
  374. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging/requirements.py +0 -0
  375. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging/specifiers.py +0 -0
  376. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging/tags.py +0 -0
  377. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging/utils.py +0 -0
  378. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging/version.py +0 -0
  379. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging-21.3.dist-info/LICENSE +0 -0
  380. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging-21.3.dist-info/LICENSE.APACHE +0 -0
  381. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging-21.3.dist-info/LICENSE.BSD +0 -0
  382. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging-21.3.dist-info/METADATA +0 -0
  383. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging-21.3.dist-info/RECORD +0 -0
  384. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging-21.3.dist-info/WHEEL +0 -0
  385. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/packaging-21.3.dist-info/top_level.txt +0 -0
  386. {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
  387. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing/__init__.py +0 -0
  388. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing/actions.py +0 -0
  389. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing/common.py +0 -0
  390. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing/core.py +0 -0
  391. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing/diagram/__init__.py +0 -0
  392. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing/diagram/template.jinja2 +0 -0
  393. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing/exceptions.py +0 -0
  394. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing/helpers.py +0 -0
  395. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing/results.py +0 -0
  396. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing/testing.py +0 -0
  397. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing/unicode.py +0 -0
  398. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing/util.py +0 -0
  399. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing-3.0.7.dist-info/LICENSE +0 -0
  400. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing-3.0.7.dist-info/METADATA +0 -0
  401. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing-3.0.7.dist-info/RECORD +0 -0
  402. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_21_3/pyparsing-3.0.7.dist-info/WHEEL +0 -0
  403. {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
  404. {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
  405. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/.layout.json +0 -0
  406. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/__init__.py +0 -0
  407. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/constraints.txt +0 -0
  408. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/__init__.py +0 -0
  409. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/_elffile.py +0 -0
  410. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/_manylinux.py +0 -0
  411. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/_musllinux.py +0 -0
  412. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/_parser.py +0 -0
  413. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/_structures.py +0 -0
  414. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/_tokenizer.py +0 -0
  415. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/markers.py +0 -0
  416. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/metadata.py +0 -0
  417. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/py.typed +0 -0
  418. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/requirements.py +0 -0
  419. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/specifiers.py +0 -0
  420. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/tags.py +0 -0
  421. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/utils.py +0 -0
  422. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging/version.py +0 -0
  423. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging-24.0.dist-info/LICENSE +0 -0
  424. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging-24.0.dist-info/LICENSE.APACHE +0 -0
  425. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging-24.0.dist-info/LICENSE.BSD +0 -0
  426. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging-24.0.dist-info/METADATA +0 -0
  427. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging-24.0.dist-info/RECORD +0 -0
  428. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_24_0/packaging-24.0.dist-info/WHEEL +0 -0
  429. {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
  430. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/.layout.json +0 -0
  431. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/__init__.py +0 -0
  432. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/constraints.txt +0 -0
  433. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/__init__.py +0 -0
  434. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/_elffile.py +0 -0
  435. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/_manylinux.py +0 -0
  436. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/_musllinux.py +0 -0
  437. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/_parser.py +0 -0
  438. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/_structures.py +0 -0
  439. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/_tokenizer.py +0 -0
  440. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/dependency_groups.py +0 -0
  441. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/direct_url.py +0 -0
  442. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/errors.py +0 -0
  443. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/licenses/__init__.py +0 -0
  444. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/licenses/_spdx.py +0 -0
  445. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/markers.py +0 -0
  446. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/metadata.py +0 -0
  447. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/py.typed +0 -0
  448. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/pylock.py +0 -0
  449. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/requirements.py +0 -0
  450. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/specifiers.py +0 -0
  451. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/tags.py +0 -0
  452. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/utils.py +0 -0
  453. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging/version.py +0 -0
  454. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging-26.2.dist-info/METADATA +0 -0
  455. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging-26.2.dist-info/RECORD +0 -0
  456. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging-26.2.dist-info/WHEEL +0 -0
  457. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging-26.2.dist-info/licenses/LICENSE +0 -0
  458. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging-26.2.dist-info/licenses/LICENSE.APACHE +0 -0
  459. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_2/packaging-26.2.dist-info/licenses/LICENSE.BSD +0 -0
  460. {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
  461. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/.layout.json +0 -0
  462. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/__init__.py +0 -0
  463. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/constraints.txt +0 -0
  464. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/__init__.py +0 -0
  465. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/_elffile.py +0 -0
  466. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/_manylinux.py +0 -0
  467. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/_musllinux.py +0 -0
  468. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/_parser.py +0 -0
  469. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/_ranges.py +0 -0
  470. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/_structures.py +0 -0
  471. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/_tokenizer.py +0 -0
  472. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/dependency_groups.py +0 -0
  473. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/direct_url.py +0 -0
  474. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/errors.py +0 -0
  475. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/licenses/__init__.py +0 -0
  476. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/licenses/_spdx.py +0 -0
  477. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/markers.py +0 -0
  478. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/metadata.py +0 -0
  479. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/py.typed +0 -0
  480. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/pylock.py +0 -0
  481. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/ranges.py +0 -0
  482. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/requirements.py +0 -0
  483. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/specifiers.py +0 -0
  484. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/tags.py +0 -0
  485. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/utils.py +0 -0
  486. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging/version.py +0 -0
  487. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging-26.3.dist-info/METADATA +0 -0
  488. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging-26.3.dist-info/RECORD +0 -0
  489. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging-26.3.dist-info/WHEEL +0 -0
  490. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging-26.3.dist-info/licenses/LICENSE +0 -0
  491. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging-26.3.dist-info/licenses/LICENSE.APACHE +0 -0
  492. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/packaging_26_3/packaging-26.3.dist-info/licenses/LICENSE.BSD +0 -0
  493. {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
  494. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/.layout.json +0 -0
  495. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/.prefix/bin/pip +0 -0
  496. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/.prefix/bin/pip3 +0 -0
  497. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/.prefix/bin/pip3.9 +0 -0
  498. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/__init__.py +0 -0
  499. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/__init__.py +0 -0
  500. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/__main__.py +0 -0
  501. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/__init__.py +0 -0
  502. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/build_env.py +0 -0
  503. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/cache.py +0 -0
  504. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/cli/__init__.py +0 -0
  505. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/cli/autocompletion.py +0 -0
  506. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/cli/base_command.py +0 -0
  507. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/cli/cmdoptions.py +0 -0
  508. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/cli/command_context.py +0 -0
  509. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/cli/main.py +0 -0
  510. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/cli/main_parser.py +0 -0
  511. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/cli/parser.py +0 -0
  512. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/cli/progress_bars.py +0 -0
  513. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/cli/req_command.py +0 -0
  514. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/cli/spinners.py +0 -0
  515. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/cli/status_codes.py +0 -0
  516. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/__init__.py +0 -0
  517. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/cache.py +0 -0
  518. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/check.py +0 -0
  519. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/completion.py +0 -0
  520. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/configuration.py +0 -0
  521. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/debug.py +0 -0
  522. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/download.py +0 -0
  523. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/freeze.py +0 -0
  524. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/hash.py +0 -0
  525. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/help.py +0 -0
  526. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/install.py +0 -0
  527. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/list.py +0 -0
  528. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/search.py +0 -0
  529. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/show.py +0 -0
  530. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/uninstall.py +0 -0
  531. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/commands/wheel.py +0 -0
  532. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/configuration.py +0 -0
  533. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/distributions/__init__.py +0 -0
  534. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/distributions/base.py +0 -0
  535. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/distributions/installed.py +0 -0
  536. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/distributions/sdist.py +0 -0
  537. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/distributions/wheel.py +0 -0
  538. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/exceptions.py +0 -0
  539. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/index/__init__.py +0 -0
  540. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/index/collector.py +0 -0
  541. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/index/package_finder.py +0 -0
  542. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/locations.py +0 -0
  543. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/main.py +0 -0
  544. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/models/__init__.py +0 -0
  545. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/models/candidate.py +0 -0
  546. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/models/direct_url.py +0 -0
  547. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/models/format_control.py +0 -0
  548. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/models/index.py +0 -0
  549. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/models/link.py +0 -0
  550. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/models/scheme.py +0 -0
  551. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/models/search_scope.py +0 -0
  552. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/models/selection_prefs.py +0 -0
  553. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/models/target_python.py +0 -0
  554. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/models/wheel.py +0 -0
  555. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/network/__init__.py +0 -0
  556. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/network/auth.py +0 -0
  557. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/network/cache.py +0 -0
  558. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/network/download.py +0 -0
  559. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/network/lazy_wheel.py +0 -0
  560. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/network/session.py +0 -0
  561. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/network/utils.py +0 -0
  562. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/network/xmlrpc.py +0 -0
  563. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/operations/__init__.py +0 -0
  564. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/operations/build/__init__.py +0 -0
  565. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/operations/build/metadata.py +0 -0
  566. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/operations/build/metadata_legacy.py +0 -0
  567. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/operations/build/wheel.py +0 -0
  568. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/operations/build/wheel_legacy.py +0 -0
  569. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/operations/check.py +0 -0
  570. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/operations/freeze.py +0 -0
  571. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/operations/install/__init__.py +0 -0
  572. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/operations/install/editable_legacy.py +0 -0
  573. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/operations/install/legacy.py +0 -0
  574. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/operations/install/wheel.py +0 -0
  575. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/operations/prepare.py +0 -0
  576. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/pyproject.py +0 -0
  577. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/req/__init__.py +0 -0
  578. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/req/constructors.py +0 -0
  579. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/req/req_file.py +0 -0
  580. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/req/req_install.py +0 -0
  581. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/req/req_set.py +0 -0
  582. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/req/req_tracker.py +0 -0
  583. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/req/req_uninstall.py +0 -0
  584. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/resolution/__init__.py +0 -0
  585. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/resolution/base.py +0 -0
  586. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/resolution/legacy/__init__.py +0 -0
  587. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/resolution/legacy/resolver.py +0 -0
  588. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/resolution/resolvelib/__init__.py +0 -0
  589. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/resolution/resolvelib/base.py +0 -0
  590. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/resolution/resolvelib/candidates.py +0 -0
  591. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/resolution/resolvelib/factory.py +0 -0
  592. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/resolution/resolvelib/found_candidates.py +0 -0
  593. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/resolution/resolvelib/provider.py +0 -0
  594. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/resolution/resolvelib/reporter.py +0 -0
  595. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/resolution/resolvelib/requirements.py +0 -0
  596. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/resolution/resolvelib/resolver.py +0 -0
  597. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/self_outdated_check.py +0 -0
  598. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/__init__.py +0 -0
  599. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/appdirs.py +0 -0
  600. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/compat.py +0 -0
  601. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/compatibility_tags.py +0 -0
  602. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/datetime.py +0 -0
  603. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/deprecation.py +0 -0
  604. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/direct_url_helpers.py +0 -0
  605. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/distutils_args.py +0 -0
  606. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/encoding.py +0 -0
  607. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/entrypoints.py +0 -0
  608. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/filesystem.py +0 -0
  609. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/filetypes.py +0 -0
  610. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/glibc.py +0 -0
  611. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/hashes.py +0 -0
  612. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/inject_securetransport.py +0 -0
  613. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/logging.py +0 -0
  614. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/misc.py +0 -0
  615. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/models.py +0 -0
  616. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/packaging.py +0 -0
  617. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/parallel.py +0 -0
  618. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/pkg_resources.py +0 -0
  619. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/setuptools_build.py +0 -0
  620. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/subprocess.py +0 -0
  621. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/temp_dir.py +0 -0
  622. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/typing.py +0 -0
  623. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/unpacking.py +0 -0
  624. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/urls.py +0 -0
  625. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/virtualenv.py +0 -0
  626. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/utils/wheel.py +0 -0
  627. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/vcs/__init__.py +0 -0
  628. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/vcs/bazaar.py +0 -0
  629. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/vcs/git.py +0 -0
  630. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/vcs/mercurial.py +0 -0
  631. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/vcs/subversion.py +0 -0
  632. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/vcs/versioncontrol.py +0 -0
  633. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_internal/wheel_builder.py +0 -0
  634. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/__init__.py +0 -0
  635. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/appdirs.py +0 -0
  636. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/cachecontrol/__init__.py +0 -0
  637. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/cachecontrol/_cmd.py +0 -0
  638. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/cachecontrol/adapter.py +0 -0
  639. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/cachecontrol/cache.py +0 -0
  640. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/cachecontrol/caches/__init__.py +0 -0
  641. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/cachecontrol/caches/file_cache.py +0 -0
  642. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/cachecontrol/caches/redis_cache.py +0 -0
  643. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/cachecontrol/compat.py +0 -0
  644. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/cachecontrol/controller.py +0 -0
  645. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/cachecontrol/filewrapper.py +0 -0
  646. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/cachecontrol/heuristics.py +0 -0
  647. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/cachecontrol/serialize.py +0 -0
  648. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/cachecontrol/wrapper.py +0 -0
  649. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/certifi/__init__.py +0 -0
  650. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/certifi/__main__.py +0 -0
  651. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/certifi/cacert.pem +0 -0
  652. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/certifi/core.py +0 -0
  653. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/__init__.py +0 -0
  654. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/big5freq.py +0 -0
  655. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/big5prober.py +0 -0
  656. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/chardistribution.py +0 -0
  657. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/charsetgroupprober.py +0 -0
  658. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/charsetprober.py +0 -0
  659. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/cli/__init__.py +0 -0
  660. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/cli/chardetect.py +0 -0
  661. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/codingstatemachine.py +0 -0
  662. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/compat.py +0 -0
  663. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/cp949prober.py +0 -0
  664. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/enums.py +0 -0
  665. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/escprober.py +0 -0
  666. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/escsm.py +0 -0
  667. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/eucjpprober.py +0 -0
  668. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/euckrfreq.py +0 -0
  669. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/euckrprober.py +0 -0
  670. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/euctwfreq.py +0 -0
  671. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/euctwprober.py +0 -0
  672. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/gb2312freq.py +0 -0
  673. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/gb2312prober.py +0 -0
  674. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/hebrewprober.py +0 -0
  675. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/jisfreq.py +0 -0
  676. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/jpcntx.py +0 -0
  677. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/langbulgarianmodel.py +0 -0
  678. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/langcyrillicmodel.py +0 -0
  679. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/langgreekmodel.py +0 -0
  680. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/langhebrewmodel.py +0 -0
  681. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/langhungarianmodel.py +0 -0
  682. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/langthaimodel.py +0 -0
  683. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/langturkishmodel.py +0 -0
  684. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/latin1prober.py +0 -0
  685. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/mbcharsetprober.py +0 -0
  686. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/mbcsgroupprober.py +0 -0
  687. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/mbcssm.py +0 -0
  688. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/sbcharsetprober.py +0 -0
  689. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/sbcsgroupprober.py +0 -0
  690. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/sjisprober.py +0 -0
  691. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/universaldetector.py +0 -0
  692. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/utf8prober.py +0 -0
  693. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/chardet/version.py +0 -0
  694. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/colorama/__init__.py +0 -0
  695. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/colorama/ansi.py +0 -0
  696. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/colorama/ansitowin32.py +0 -0
  697. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/colorama/initialise.py +0 -0
  698. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/colorama/win32.py +0 -0
  699. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/colorama/winterm.py +0 -0
  700. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/contextlib2.py +0 -0
  701. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/__init__.py +0 -0
  702. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/_backport/__init__.py +0 -0
  703. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/_backport/misc.py +0 -0
  704. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/_backport/shutil.py +0 -0
  705. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/_backport/sysconfig.cfg +0 -0
  706. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/_backport/sysconfig.py +0 -0
  707. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/_backport/tarfile.py +0 -0
  708. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/compat.py +0 -0
  709. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/database.py +0 -0
  710. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/index.py +0 -0
  711. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/locators.py +0 -0
  712. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/manifest.py +0 -0
  713. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/markers.py +0 -0
  714. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/metadata.py +0 -0
  715. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/resources.py +0 -0
  716. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/scripts.py +0 -0
  717. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/t32.exe +0 -0
  718. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/t64.exe +0 -0
  719. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/util.py +0 -0
  720. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/version.py +0 -0
  721. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/w32.exe +0 -0
  722. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/w64.exe +0 -0
  723. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distlib/wheel.py +0 -0
  724. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/distro.py +0 -0
  725. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/__init__.py +0 -0
  726. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/_ihatexml.py +0 -0
  727. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/_inputstream.py +0 -0
  728. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/_tokenizer.py +0 -0
  729. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/_trie/__init__.py +0 -0
  730. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/_trie/_base.py +0 -0
  731. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/_trie/py.py +0 -0
  732. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/_utils.py +0 -0
  733. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/constants.py +0 -0
  734. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/filters/__init__.py +0 -0
  735. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/filters/alphabeticalattributes.py +0 -0
  736. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/filters/base.py +0 -0
  737. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/filters/inject_meta_charset.py +0 -0
  738. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/filters/lint.py +0 -0
  739. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/filters/optionaltags.py +0 -0
  740. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/filters/sanitizer.py +0 -0
  741. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/filters/whitespace.py +0 -0
  742. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/html5parser.py +0 -0
  743. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/serializer.py +0 -0
  744. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treeadapters/__init__.py +0 -0
  745. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treeadapters/genshi.py +0 -0
  746. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treeadapters/sax.py +0 -0
  747. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treebuilders/__init__.py +0 -0
  748. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treebuilders/base.py +0 -0
  749. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treebuilders/dom.py +0 -0
  750. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treebuilders/etree.py +0 -0
  751. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treebuilders/etree_lxml.py +0 -0
  752. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treewalkers/__init__.py +0 -0
  753. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treewalkers/base.py +0 -0
  754. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treewalkers/dom.py +0 -0
  755. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treewalkers/etree.py +0 -0
  756. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treewalkers/etree_lxml.py +0 -0
  757. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/html5lib/treewalkers/genshi.py +0 -0
  758. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/idna/__init__.py +0 -0
  759. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/idna/codec.py +0 -0
  760. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/idna/compat.py +0 -0
  761. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/idna/core.py +0 -0
  762. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/idna/idnadata.py +0 -0
  763. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/idna/intranges.py +0 -0
  764. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/idna/package_data.py +0 -0
  765. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/idna/uts46data.py +0 -0
  766. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/ipaddress.py +0 -0
  767. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/msgpack/__init__.py +0 -0
  768. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/msgpack/_version.py +0 -0
  769. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/msgpack/exceptions.py +0 -0
  770. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/msgpack/ext.py +0 -0
  771. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/msgpack/fallback.py +0 -0
  772. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/packaging/__about__.py +0 -0
  773. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/packaging/__init__.py +0 -0
  774. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/packaging/_compat.py +0 -0
  775. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/packaging/_structures.py +0 -0
  776. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/packaging/_typing.py +0 -0
  777. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/packaging/markers.py +0 -0
  778. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/packaging/requirements.py +0 -0
  779. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/packaging/specifiers.py +0 -0
  780. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/packaging/tags.py +0 -0
  781. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/packaging/utils.py +0 -0
  782. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/packaging/version.py +0 -0
  783. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/pep517/__init__.py +0 -0
  784. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/pep517/_in_process.py +0 -0
  785. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/pep517/build.py +0 -0
  786. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/pep517/check.py +0 -0
  787. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/pep517/colorlog.py +0 -0
  788. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/pep517/compat.py +0 -0
  789. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/pep517/dirtools.py +0 -0
  790. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/pep517/envbuild.py +0 -0
  791. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/pep517/meta.py +0 -0
  792. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/pep517/wrappers.py +0 -0
  793. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/pkg_resources/__init__.py +0 -0
  794. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/pkg_resources/py31compat.py +0 -0
  795. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/progress/__init__.py +0 -0
  796. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/progress/bar.py +0 -0
  797. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/progress/counter.py +0 -0
  798. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/progress/spinner.py +0 -0
  799. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/pyparsing.py +0 -0
  800. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/__init__.py +0 -0
  801. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/__version__.py +0 -0
  802. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/_internal_utils.py +0 -0
  803. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/adapters.py +0 -0
  804. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/api.py +0 -0
  805. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/auth.py +0 -0
  806. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/certs.py +0 -0
  807. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/compat.py +0 -0
  808. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/cookies.py +0 -0
  809. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/exceptions.py +0 -0
  810. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/help.py +0 -0
  811. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/hooks.py +0 -0
  812. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/models.py +0 -0
  813. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/packages.py +0 -0
  814. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/sessions.py +0 -0
  815. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/status_codes.py +0 -0
  816. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/structures.py +0 -0
  817. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/requests/utils.py +0 -0
  818. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/resolvelib/__init__.py +0 -0
  819. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/resolvelib/compat/__init__.py +0 -0
  820. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/resolvelib/compat/collections_abc.py +0 -0
  821. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/resolvelib/providers.py +0 -0
  822. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/resolvelib/reporters.py +0 -0
  823. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/resolvelib/resolvers.py +0 -0
  824. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/resolvelib/structs.py +0 -0
  825. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/retrying.py +0 -0
  826. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/six.py +0 -0
  827. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/toml/__init__.py +0 -0
  828. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/toml/decoder.py +0 -0
  829. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/toml/encoder.py +0 -0
  830. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/toml/ordered.py +0 -0
  831. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/toml/tz.py +0 -0
  832. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/__init__.py +0 -0
  833. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/_collections.py +0 -0
  834. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/_version.py +0 -0
  835. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/connection.py +0 -0
  836. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/connectionpool.py +0 -0
  837. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/contrib/__init__.py +0 -0
  838. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/contrib/_appengine_environ.py +0 -0
  839. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/contrib/_securetransport/__init__.py +0 -0
  840. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +0 -0
  841. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +0 -0
  842. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/contrib/appengine.py +0 -0
  843. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/contrib/ntlmpool.py +0 -0
  844. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/contrib/pyopenssl.py +0 -0
  845. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/contrib/securetransport.py +0 -0
  846. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/contrib/socks.py +0 -0
  847. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/exceptions.py +0 -0
  848. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/fields.py +0 -0
  849. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/filepost.py +0 -0
  850. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/packages/__init__.py +0 -0
  851. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/packages/backports/__init__.py +0 -0
  852. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/packages/backports/makefile.py +0 -0
  853. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/packages/six.py +0 -0
  854. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py +0 -0
  855. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py +0 -0
  856. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/poolmanager.py +0 -0
  857. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/request.py +0 -0
  858. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/response.py +0 -0
  859. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/util/__init__.py +0 -0
  860. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/util/connection.py +0 -0
  861. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/util/proxy.py +0 -0
  862. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/util/queue.py +0 -0
  863. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/util/request.py +0 -0
  864. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/util/response.py +0 -0
  865. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/util/retry.py +0 -0
  866. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/util/ssl_.py +0 -0
  867. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/util/ssltransport.py +0 -0
  868. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/util/timeout.py +0 -0
  869. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/util/url.py +0 -0
  870. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/urllib3/util/wait.py +0 -0
  871. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/vendor.txt +0 -0
  872. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/webencodings/__init__.py +0 -0
  873. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/webencodings/labels.py +0 -0
  874. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/webencodings/mklabels.py +0 -0
  875. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/webencodings/tests.py +0 -0
  876. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip/_vendor/webencodings/x_user_defined.py +0 -0
  877. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip-20.3.4.dist-info/LICENSE.txt +0 -0
  878. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip-20.3.4.dist-info/METADATA +0 -0
  879. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip-20.3.4.dist-info/RECORD +0 -0
  880. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip-20.3.4.dist-info/WHEEL +0 -0
  881. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip-20.3.4.dist-info/entry_points.txt +0 -0
  882. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip-20.3.4.dist-info/top_level.txt +0 -0
  883. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/pip/pip-20.3.4.pex-info/original-whl-info.json +0 -0
  884. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/.layout.json +0 -0
  885. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/.prefix/bin/easy_install +0 -0
  886. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/.prefix/bin/easy_install-3.9 +0 -0
  887. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/__init__.py +0 -0
  888. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/easy_install.py +0 -0
  889. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/__init__.py +0 -0
  890. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/_vendor/__init__.py +0 -0
  891. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/_vendor/appdirs.py +0 -0
  892. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/_vendor/packaging/__about__.py +0 -0
  893. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/_vendor/packaging/__init__.py +0 -0
  894. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/_vendor/packaging/_compat.py +0 -0
  895. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/_vendor/packaging/_structures.py +0 -0
  896. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/_vendor/packaging/markers.py +0 -0
  897. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/_vendor/packaging/requirements.py +0 -0
  898. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/_vendor/packaging/specifiers.py +0 -0
  899. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/_vendor/packaging/utils.py +0 -0
  900. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/_vendor/packaging/version.py +0 -0
  901. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/_vendor/pyparsing.py +0 -0
  902. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/_vendor/six.py +0 -0
  903. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/extern/__init__.py +0 -0
  904. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/pkg_resources/py31compat.py +0 -0
  905. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/__init__.py +0 -0
  906. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_deprecation_warning.py +0 -0
  907. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_imp.py +0 -0
  908. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/__init__.py +0 -0
  909. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/ordered_set.py +0 -0
  910. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/packaging/__about__.py +0 -0
  911. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/packaging/__init__.py +0 -0
  912. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/packaging/_compat.py +0 -0
  913. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/packaging/_structures.py +0 -0
  914. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/packaging/markers.py +0 -0
  915. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/packaging/requirements.py +0 -0
  916. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/packaging/specifiers.py +0 -0
  917. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/packaging/tags.py +0 -0
  918. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/packaging/utils.py +0 -0
  919. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/packaging/version.py +0 -0
  920. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/pyparsing.py +0 -0
  921. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/_vendor/six.py +0 -0
  922. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/archive_util.py +0 -0
  923. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/build_meta.py +0 -0
  924. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/cli-32.exe +0 -0
  925. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/cli-64.exe +0 -0
  926. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/cli.exe +0 -0
  927. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/__init__.py +0 -0
  928. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/alias.py +0 -0
  929. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/bdist_egg.py +0 -0
  930. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/bdist_rpm.py +0 -0
  931. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/bdist_wininst.py +0 -0
  932. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/build_clib.py +0 -0
  933. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/build_ext.py +0 -0
  934. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/build_py.py +0 -0
  935. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/develop.py +0 -0
  936. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/dist_info.py +0 -0
  937. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/easy_install.py +0 -0
  938. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/egg_info.py +0 -0
  939. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/install.py +0 -0
  940. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/install_egg_info.py +0 -0
  941. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/install_lib.py +0 -0
  942. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/install_scripts.py +0 -0
  943. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/launcher manifest.xml +0 -0
  944. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/py36compat.py +0 -0
  945. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/register.py +0 -0
  946. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/rotate.py +0 -0
  947. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/saveopts.py +0 -0
  948. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/sdist.py +0 -0
  949. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/setopt.py +0 -0
  950. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/test.py +0 -0
  951. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/upload.py +0 -0
  952. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/command/upload_docs.py +0 -0
  953. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/config.py +0 -0
  954. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/dep_util.py +0 -0
  955. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/depends.py +0 -0
  956. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/dist.py +0 -0
  957. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/errors.py +0 -0
  958. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/extension.py +0 -0
  959. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/extern/__init__.py +0 -0
  960. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/glob.py +0 -0
  961. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/gui-32.exe +0 -0
  962. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/gui-64.exe +0 -0
  963. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/gui.exe +0 -0
  964. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/installer.py +0 -0
  965. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/launch.py +0 -0
  966. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/lib2to3_ex.py +0 -0
  967. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/monkey.py +0 -0
  968. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/msvc.py +0 -0
  969. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/namespaces.py +0 -0
  970. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/package_index.py +0 -0
  971. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/py27compat.py +0 -0
  972. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/py31compat.py +0 -0
  973. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/py33compat.py +0 -0
  974. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/py34compat.py +0 -0
  975. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/sandbox.py +0 -0
  976. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/script (dev).tmpl +0 -0
  977. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/script.tmpl +0 -0
  978. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/site-patch.py +0 -0
  979. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/ssl_support.py +0 -0
  980. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/unicode_utils.py +0 -0
  981. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/version.py +0 -0
  982. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/wheel.py +0 -0
  983. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools/windows_support.py +0 -0
  984. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools-44.0.0+3acb925dd708430aeaf197ea53ac8a752f7c1863.dist-info/LICENSE +0 -0
  985. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools-44.0.0+3acb925dd708430aeaf197ea53ac8a752f7c1863.dist-info/METADATA +0 -0
  986. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools-44.0.0+3acb925dd708430aeaf197ea53ac8a752f7c1863.dist-info/RECORD +0 -0
  987. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools-44.0.0+3acb925dd708430aeaf197ea53ac8a752f7c1863.dist-info/WHEEL +0 -0
  988. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools-44.0.0+3acb925dd708430aeaf197ea53ac8a752f7c1863.dist-info/dependency_links.txt +0 -0
  989. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools-44.0.0+3acb925dd708430aeaf197ea53ac8a752f7c1863.dist-info/entry_points.txt +0 -0
  990. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools-44.0.0+3acb925dd708430aeaf197ea53ac8a752f7c1863.dist-info/top_level.txt +0 -0
  991. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/setuptools/setuptools-44.0.0+3acb925dd708430aeaf197ea53ac8a752f7c1863.dist-info/zip-safe +0 -0
  992. {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
  993. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/.layout.json +0 -0
  994. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/__init__.py +0 -0
  995. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/constraints.txt +0 -0
  996. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/toml/__init__.py +0 -0
  997. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/toml/decoder.py +0 -0
  998. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/toml/encoder.py +0 -0
  999. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/toml/ordered.py +0 -0
  1000. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/toml/tz.py +0 -0
  1001. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/toml-0.10.2.dist-info/LICENSE +0 -0
  1002. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/toml-0.10.2.dist-info/METADATA +0 -0
  1003. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/toml-0.10.2.dist-info/RECORD +0 -0
  1004. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/toml-0.10.2.dist-info/WHEEL +0 -0
  1005. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/toml-0.10.2.dist-info/top_level.txt +0 -0
  1006. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/toml/toml-0.10.2.pex-info/original-whl-info.json +0 -0
  1007. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/tomli/.layout.json +0 -0
  1008. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/tomli/__init__.py +0 -0
  1009. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/tomli/constraints.txt +0 -0
  1010. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/tomli/tomli/__init__.py +0 -0
  1011. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/tomli/tomli/_parser.py +0 -0
  1012. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/tomli/tomli/_re.py +0 -0
  1013. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/tomli/tomli/_types.py +0 -0
  1014. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/tomli/tomli/py.typed +0 -0
  1015. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/tomli/tomli-2.0.1.dist-info/LICENSE +0 -0
  1016. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/tomli/tomli-2.0.1.dist-info/METADATA +0 -0
  1017. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/tomli/tomli-2.0.1.dist-info/RECORD +0 -0
  1018. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/tomli/tomli-2.0.1.dist-info/WHEEL +0 -0
  1019. {pex-2.103.0 → pex-2.103.2}/pex/vendor/_vendored/tomli/tomli-2.0.1.pex-info/original-whl-info.json +0 -0
  1020. {pex-2.103.0 → pex-2.103.2}/pex/venv/README.md +0 -0
  1021. {pex-2.103.0 → pex-2.103.2}/pex/venv/__init__.py +0 -0
  1022. {pex-2.103.0 → pex-2.103.2}/pex/venv/bin_path.py +0 -0
  1023. {pex-2.103.0 → pex-2.103.2}/pex/venv/install_scope.py +0 -0
  1024. {pex-2.103.0 → pex-2.103.2}/pex/venv/installer_configuration.py +0 -0
  1025. {pex-2.103.0 → pex-2.103.2}/pex/venv/installer_options.py +0 -0
  1026. {pex-2.103.0 → pex-2.103.2}/pex/venv/venv_pex.py +0 -0
  1027. {pex-2.103.0 → pex-2.103.2}/pex/venv/virtualenv_16.7.12_py +0 -0
  1028. {pex-2.103.0 → pex-2.103.2}/pex/wheel.py +0 -0
  1029. {pex-2.103.0 → pex-2.103.2}/pex/whl.py +0 -0
  1030. {pex-2.103.0 → pex-2.103.2}/pex/windows/stubs/uv-trampoline-aarch64-console.exe +0 -0
  1031. {pex-2.103.0 → pex-2.103.2}/pex/windows/stubs/uv-trampoline-aarch64-gui.exe +0 -0
  1032. {pex-2.103.0 → pex-2.103.2}/pex/windows/stubs/uv-trampoline-x86_64-console.exe +0 -0
  1033. {pex-2.103.0 → pex-2.103.2}/pex/windows/stubs/uv-trampoline-x86_64-gui.exe +0 -0
  1034. {pex-2.103.0 → pex-2.103.2}/pex/ziputils.py +0 -0
  1035. {pex-2.103.0 → pex-2.103.2}/pylock.toml +0 -0
  1036. {pex-2.103.0 → pex-2.103.2}/pyproject.toml +0 -0
  1037. {pex-2.103.0 → pex-2.103.2}/scripts/analyze-CI-shard-timeout.py +0 -0
  1038. {pex-2.103.0 → pex-2.103.2}/scripts/build-cache-image.py +0 -0
  1039. {pex-2.103.0 → pex-2.103.2}/scripts/build-docs.py +0 -0
  1040. {pex-2.103.0 → pex-2.103.2}/scripts/create-packages.py +0 -0
  1041. {pex-2.103.0 → pex-2.103.2}/scripts/dev-cmd-fix-egg-link.py +0 -0
  1042. {pex-2.103.0 → pex-2.103.2}/scripts/dev-cmd-pip-install-pex-next.py +0 -0
  1043. {pex-2.103.0 → pex-2.103.2}/scripts/embed-virtualenv.py +0 -0
  1044. {pex-2.103.0 → pex-2.103.2}/scripts/format.py +0 -0
  1045. {pex-2.103.0 → pex-2.103.2}/scripts/gen-scie-platform.py +0 -0
  1046. {pex-2.103.0 → pex-2.103.2}/scripts/lint.py +0 -0
  1047. {pex-2.103.0 → pex-2.103.2}/scripts/py27/lint_enum.py +0 -0
  1048. {pex-2.103.0 → pex-2.103.2}/scripts/requires-python-check.py +0 -0
  1049. {pex-2.103.0 → pex-2.103.2}/scripts/typecheck.py +0 -0
  1050. {pex-2.103.0 → pex-2.103.2}/setup.cfg +0 -0
  1051. {pex-2.103.0 → pex-2.103.2}/setup.py +0 -0
  1052. {pex-2.103.0 → pex-2.103.2}/testing/__init__.py +0 -0
  1053. {pex-2.103.0 → pex-2.103.2}/testing/bin/run_tests.py +0 -0
  1054. {pex-2.103.0 → pex-2.103.2}/testing/build_system.py +0 -0
  1055. {pex-2.103.0 → pex-2.103.2}/testing/cli.py +0 -0
  1056. {pex-2.103.0 → pex-2.103.2}/testing/data/__init__.py +0 -0
  1057. {pex-2.103.0 → pex-2.103.2}/testing/data/locks/__init__.py +0 -0
  1058. {pex-2.103.0 → pex-2.103.2}/testing/data/locks/bug-report-pantsbuild-23407.lock.json +0 -0
  1059. {pex-2.103.0 → pex-2.103.2}/testing/data/locks/devpi-server.lock.json +0 -0
  1060. {pex-2.103.0 → pex-2.103.2}/testing/data/locks/issue-2415.lock.json +0 -0
  1061. {pex-2.103.0 → pex-2.103.2}/testing/data/locks/issue-2683.lock.json +0 -0
  1062. {pex-2.103.0 → pex-2.103.2}/testing/data/locks/mitmproxy.lock.json +0 -0
  1063. {pex-2.103.0 → pex-2.103.2}/testing/data/locks/pylock.issue-2887.toml +0 -0
  1064. {pex-2.103.0 → pex-2.103.2}/testing/data/locks/requests.lock.json +0 -0
  1065. {pex-2.103.0 → pex-2.103.2}/testing/data/pip_logs/issue-2414.pip-23.2.log +0 -0
  1066. {pex-2.103.0 → pex-2.103.2}/testing/data/pip_logs/issue-2414.pip-23.3.1.log +0 -0
  1067. {pex-2.103.0 → pex-2.103.2}/testing/data/platforms/__init__.py +0 -0
  1068. {pex-2.103.0 → pex-2.103.2}/testing/data/platforms/complete_platform_almalinux-8.10_py3.11.json +0 -0
  1069. {pex-2.103.0 → pex-2.103.2}/testing/data/platforms/complete_platform_linux_armv7l_py312.json +0 -0
  1070. {pex-2.103.0 → pex-2.103.2}/testing/data/platforms/complete_platform_linux_x86-64_py311.json +0 -0
  1071. {pex-2.103.0 → pex-2.103.2}/testing/data/platforms/linux-x86_64.json +0 -0
  1072. {pex-2.103.0 → pex-2.103.2}/testing/data/platforms/macos-aarch64.json +0 -0
  1073. {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
  1074. {pex-2.103.0 → pex-2.103.2}/testing/data/platforms/macosx_10_13_x86_64-cp-36-m.tags.txt +0 -0
  1075. {pex-2.103.0 → pex-2.103.2}/testing/devpi.py +0 -0
  1076. {pex-2.103.0 → pex-2.103.2}/testing/dist_metadata.py +0 -0
  1077. {pex-2.103.0 → pex-2.103.2}/testing/docker.py +0 -0
  1078. {pex-2.103.0 → pex-2.103.2}/testing/find_links.py +0 -0
  1079. {pex-2.103.0 → pex-2.103.2}/testing/local_project.py +0 -0
  1080. {pex-2.103.0 → pex-2.103.2}/testing/lock.py +0 -0
  1081. {pex-2.103.0 → pex-2.103.2}/testing/mitmproxy.py +0 -0
  1082. {pex-2.103.0 → pex-2.103.2}/testing/pep_427.py +0 -0
  1083. {pex-2.103.0 → pex-2.103.2}/testing/pex_dist.py +0 -0
  1084. {pex-2.103.0 → pex-2.103.2}/testing/pip.py +0 -0
  1085. {pex-2.103.0 → pex-2.103.2}/testing/pytest_utils/__init__.py +0 -0
  1086. {pex-2.103.0 → pex-2.103.2}/testing/pytest_utils/shard.py +0 -0
  1087. {pex-2.103.0 → pex-2.103.2}/testing/pytest_utils/tmp.py +0 -0
  1088. {pex-2.103.0 → pex-2.103.2}/testing/pytest_utils/track_status_hook.py +0 -0
  1089. {pex-2.103.0 → pex-2.103.2}/testing/pytest_utils/track_status_hook_py2.py +0 -0
  1090. {pex-2.103.0 → pex-2.103.2}/testing/pytest_utils/track_status_hook_py3.py +0 -0
  1091. {pex-2.103.0 → pex-2.103.2}/testing/resolve.py +0 -0
  1092. {pex-2.103.0 → pex-2.103.2}/testing/scie.py +0 -0
  1093. {pex-2.103.0 → pex-2.103.2}/testing/subprocess.py +0 -0
  1094. {pex-2.103.0 → pex-2.103.2}/testing/uv.py +0 -0
  1095. {pex-2.103.0 → pex-2.103.2}/testing/venv.py +0 -0
  1096. {pex-2.103.0 → pex-2.103.2}/tests/bin/test_sh_boot.py +0 -0
  1097. {pex-2.103.0 → pex-2.103.2}/tests/build_backend/test_configuration.py +0 -0
  1098. {pex-2.103.0 → pex-2.103.2}/tests/build_backend/test_pylock.py +0 -0
  1099. {pex-2.103.0 → pex-2.103.2}/tests/build_system/test_issue_2125.py +0 -0
  1100. {pex-2.103.0 → pex-2.103.2}/tests/build_system/test_pep_517.py +0 -0
  1101. {pex-2.103.0 → pex-2.103.2}/tests/build_system/test_pep_518.py +0 -0
  1102. {pex-2.103.0 → pex-2.103.2}/tests/commands/test_command.py +0 -0
  1103. {pex-2.103.0 → pex-2.103.2}/tests/conftest.py +0 -0
  1104. {pex-2.103.0 → pex-2.103.2}/tests/example_packages/MarkupSafe-1.0-cp27-cp27mu-linux_x86_64.whl +0 -0
  1105. {pex-2.103.0 → pex-2.103.2}/tests/example_packages/PyAthena-1.11.5-py2.py3-none-any.whl +0 -0
  1106. {pex-2.103.0 → pex-2.103.2}/tests/example_packages/PyAthena-1.9.0-py2.py3-none-any.whl +0 -0
  1107. {pex-2.103.0 → pex-2.103.2}/tests/example_packages/aws_cfn_bootstrap-1.4-py2-none-any.whl +0 -0
  1108. {pex-2.103.0 → pex-2.103.2}/tests/example_packages/pyparsing-2.1.10-py2.py3-none-any.whl +0 -0
  1109. {pex-2.103.0 → pex-2.103.2}/tests/integration/__init__.py +0 -0
  1110. {pex-2.103.0 → pex-2.103.2}/tests/integration/build_backend/test_wrap.py +0 -0
  1111. {pex-2.103.0 → pex-2.103.2}/tests/integration/build_system/__init__.py +0 -0
  1112. {pex-2.103.0 → pex-2.103.2}/tests/integration/build_system/test_issue_2063.py +0 -0
  1113. {pex-2.103.0 → pex-2.103.2}/tests/integration/build_system/test_issue_2125.py +0 -0
  1114. {pex-2.103.0 → pex-2.103.2}/tests/integration/build_system/test_issue_2913.py +0 -0
  1115. {pex-2.103.0 → pex-2.103.2}/tests/integration/build_system/test_pep_517.py +0 -0
  1116. {pex-2.103.0 → pex-2.103.2}/tests/integration/build_system/test_pep_518.py +0 -0
  1117. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_cache_prune.py +0 -0
  1118. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_discussion_2752.py +0 -0
  1119. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_download.py +0 -0
  1120. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_export.py +0 -0
  1121. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_export_subset.lock.json +0 -0
  1122. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_export_subset.py +0 -0
  1123. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_interpreter_inspect.py +0 -0
  1124. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_1413.py +0 -0
  1125. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_1665.py +0 -0
  1126. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_1667.py +0 -0
  1127. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_1688.py +0 -0
  1128. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_1711.py +0 -0
  1129. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_1734.py +0 -0
  1130. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_1741.py +0 -0
  1131. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_1801.py +0 -0
  1132. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_1821.py +0 -0
  1133. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_2050.py +0 -0
  1134. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_2057.py +0 -0
  1135. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_2059.py +0 -0
  1136. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_2098.py +0 -0
  1137. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_2211.py +0 -0
  1138. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_2268.py +0 -0
  1139. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_2313.py +0 -0
  1140. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_2414.py +0 -0
  1141. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_2519.py +0 -0
  1142. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_3148.py +0 -0
  1143. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_3194.py +0 -0
  1144. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_issue_3206.py +0 -0
  1145. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_local_project_lock.py +0 -0
  1146. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock.py +0 -0
  1147. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock_dependency_groups.py +0 -0
  1148. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock_elide_unused_requires_dist.py +0 -0
  1149. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock_foreign_platform_sdist.py +0 -0
  1150. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock_report.py +0 -0
  1151. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock_reproducibility_hash_seed.py +0 -0
  1152. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock_requirements_file.py +0 -0
  1153. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock_resolve_auth.py +0 -0
  1154. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock_script_metadata.py +0 -0
  1155. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock_subset.py +0 -0
  1156. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock_sync.py +0 -0
  1157. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock_update.py +0 -0
  1158. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock_update_issues_2332_2334.py +0 -0
  1159. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_lock_uploaded_prior_to.py +0 -0
  1160. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_pep_751.py +0 -0
  1161. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_run.py +0 -0
  1162. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_scie_create.py +0 -0
  1163. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_split_universal_locks.py +0 -0
  1164. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_vcs_lock.py +0 -0
  1165. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_venv_inspect.py +0 -0
  1166. {pex-2.103.0 → pex-2.103.2}/tests/integration/cli/commands/test_wheel.py +0 -0
  1167. {pex-2.103.0 → pex-2.103.2}/tests/integration/conftest.py +0 -0
  1168. {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/__init__.py +0 -0
  1169. {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/pep_691/__init__.py +0 -0
  1170. {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/pep_691/test_api.py +0 -0
  1171. {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_dependency_groups.py +0 -0
  1172. {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_1361.py +0 -0
  1173. {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_1907.py +0 -0
  1174. {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_1918.py +0 -0
  1175. {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_2092.py +0 -0
  1176. {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_2412.py +0 -0
  1177. {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_2532.py +0 -0
  1178. {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_2568.py +0 -0
  1179. {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_2772.py +0 -0
  1180. {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_2785.py +0 -0
  1181. {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_2877.py +0 -0
  1182. {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_2926.py +0 -0
  1183. {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_2930_and_2931.py +0 -0
  1184. {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_3008.py +0 -0
  1185. {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_3022.py +0 -0
  1186. {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_3032.py +0 -0
  1187. {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_3040.py +0 -0
  1188. {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_issue_3244.py +0 -0
  1189. {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_universal_lock_splits.py +0 -0
  1190. {pex-2.103.0 → pex-2.103.2}/tests/integration/resolve/test_venv_resolver.py +0 -0
  1191. {pex-2.103.0 → pex-2.103.2}/tests/integration/scie/__init__.py +0 -0
  1192. {pex-2.103.0 → pex-2.103.2}/tests/integration/scie/test_discussion_2516.py +0 -0
  1193. {pex-2.103.0 → pex-2.103.2}/tests/integration/scie/test_issue_2733.py +0 -0
  1194. {pex-2.103.0 → pex-2.103.2}/tests/integration/scie/test_issue_2740.py +0 -0
  1195. {pex-2.103.0 → pex-2.103.2}/tests/integration/scie/test_issue_2810.py +0 -0
  1196. {pex-2.103.0 → pex-2.103.2}/tests/integration/scie/test_issue_2827.py +0 -0
  1197. {pex-2.103.0 → pex-2.103.2}/tests/integration/scie/test_issue_3195.py +0 -0
  1198. {pex-2.103.0 → pex-2.103.2}/tests/integration/scie/test_issue_3217.py +0 -0
  1199. {pex-2.103.0 → pex-2.103.2}/tests/integration/scie/test_pex_scie.py +0 -0
  1200. {pex-2.103.0 → pex-2.103.2}/tests/integration/scie/test_scie_ephemeral_run.py +0 -0
  1201. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_bind_resource_path.py +0 -0
  1202. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_build_properties.py +0 -0
  1203. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_direct_url_pex.py +0 -0
  1204. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_discussion_2979.py +0 -0
  1205. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_discussion_3044.py +0 -0
  1206. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_downloaded_artifact_metadata_invalid.py +0 -0
  1207. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_downloads.py +0 -0
  1208. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_excludes.py +0 -0
  1209. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_executuon_mode_venv.py +0 -0
  1210. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_inject_env_and_args.py +0 -0
  1211. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_inject_python_args.py +0 -0
  1212. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_integration.py +0 -0
  1213. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_interpreter.py +0 -0
  1214. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_interpreter_selection.py +0 -0
  1215. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_interpreter_selection_strategy.py +0 -0
  1216. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1017.py +0 -0
  1217. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1018.py +0 -0
  1218. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1025.py +0 -0
  1219. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1031.py +0 -0
  1220. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1075.py +0 -0
  1221. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1179.py +0 -0
  1222. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1201.py +0 -0
  1223. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1202.py +0 -0
  1224. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1218.py +0 -0
  1225. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1225.py +0 -0
  1226. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1232.py +0 -0
  1227. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1302.py +0 -0
  1228. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1316.py +0 -0
  1229. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1336.py +0 -0
  1230. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1422.py +0 -0
  1231. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1447.py +0 -0
  1232. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1479.py +0 -0
  1233. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1520.py +0 -0
  1234. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1537.py +0 -0
  1235. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1540.py +0 -0
  1236. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1550.py +0 -0
  1237. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1560.py +0 -0
  1238. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_157.py +0 -0
  1239. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1597.py +0 -0
  1240. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1598.py +0 -0
  1241. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1656.py +0 -0
  1242. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1683.py +0 -0
  1243. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1726.py +0 -0
  1244. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1730.py +0 -0
  1245. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1802.py +0 -0
  1246. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1809.py +0 -0
  1247. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1817.py +0 -0
  1248. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1825.py +0 -0
  1249. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1856.py +0 -0
  1250. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1861.py +0 -0
  1251. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1870.py +0 -0
  1252. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1872.py +0 -0
  1253. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1879.py +0 -0
  1254. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1933.py +0 -0
  1255. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1936.py +0 -0
  1256. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1949.py +0 -0
  1257. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_1995.py +0 -0
  1258. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2001.py +0 -0
  1259. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2006.py +0 -0
  1260. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2017.py +0 -0
  1261. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2023.py +0 -0
  1262. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2038.py +0 -0
  1263. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2073.py +0 -0
  1264. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2087.py +0 -0
  1265. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2088.py +0 -0
  1266. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2113.py +0 -0
  1267. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2134.py +0 -0
  1268. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2183.py +0 -0
  1269. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2186.py +0 -0
  1270. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2203.py +0 -0
  1271. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2235.py +0 -0
  1272. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2249.py +0 -0
  1273. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2299.py +0 -0
  1274. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2324.py +0 -0
  1275. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2343.py +0 -0
  1276. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2348.py +0 -0
  1277. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2355.py +0 -0
  1278. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2371.py +0 -0
  1279. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2389.py +0 -0
  1280. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2391.py +0 -0
  1281. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2395.py +0 -0
  1282. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2410.py +0 -0
  1283. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2412.py +0 -0
  1284. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2413.py +0 -0
  1285. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2415.py +0 -0
  1286. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2432.py +0 -0
  1287. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2441.py +0 -0
  1288. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2572.py +0 -0
  1289. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2631.py +0 -0
  1290. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2706.py +0 -0
  1291. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2739.py +0 -0
  1292. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2819.py +0 -0
  1293. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2822.py +0 -0
  1294. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2862.py +0 -0
  1295. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2885.py +0 -0
  1296. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2897.py +0 -0
  1297. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2941.py +0 -0
  1298. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2942.py +0 -0
  1299. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2949.py +0 -0
  1300. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_298.py +0 -0
  1301. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2991.py +0 -0
  1302. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_2998.py +0 -0
  1303. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3003.py +0 -0
  1304. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3030.py +0 -0
  1305. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3047.py +0 -0
  1306. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3050.py +0 -0
  1307. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3089.py +0 -0
  1308. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3113.py +0 -0
  1309. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3116.py +0 -0
  1310. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3118.py +0 -0
  1311. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3135.py +0 -0
  1312. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3138.py +0 -0
  1313. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3223.py +0 -0
  1314. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3242.py +0 -0
  1315. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3248.py +0 -0
  1316. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_3259.py +0 -0
  1317. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_434.py +0 -0
  1318. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_455.py +0 -0
  1319. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_539.py +0 -0
  1320. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_598.py +0 -0
  1321. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_661.py +0 -0
  1322. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_729.py +0 -0
  1323. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_736.py +0 -0
  1324. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_745.py +0 -0
  1325. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_749.py +0 -0
  1326. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_898.py +0 -0
  1327. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_899.py +0 -0
  1328. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_940.py +0 -0
  1329. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_issue_996.py +0 -0
  1330. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_keyring_support.py +0 -0
  1331. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_layout.py +0 -0
  1332. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_layout_packed.py +0 -0
  1333. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_lock_resolver.py +0 -0
  1334. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_locked_resolve.py +0 -0
  1335. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_no_pre_install_wheels.py +0 -0
  1336. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_override_replace.py +0 -0
  1337. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_overrides.py +0 -0
  1338. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_pep_427.py +0 -0
  1339. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_pex_bootstrapper.py +0 -0
  1340. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_pex_entry_points.py +0 -0
  1341. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_pex_import.py +0 -0
  1342. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_pip.py +0 -0
  1343. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_platform_pex_name_placeholder.py +0 -0
  1344. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_reexec.py +0 -0
  1345. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_reproducible.py +0 -0
  1346. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_scie_desktop_install.py +0 -0
  1347. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_scoped_repos.py +0 -0
  1348. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_script_metadata.py +0 -0
  1349. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_setproctitle.py +0 -0
  1350. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_sh_boot.py +0 -0
  1351. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_shebang_length_limit.py +0 -0
  1352. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_variables.py +0 -0
  1353. {pex-2.103.0 → pex-2.103.2}/tests/integration/test_venv_editables.py +0 -0
  1354. {pex-2.103.0 → pex-2.103.2}/tests/integration/tools/commands/test_issue_2105.py +0 -0
  1355. {pex-2.103.0 → pex-2.103.2}/tests/integration/tools/commands/test_venv.py +0 -0
  1356. {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/__init__.py +0 -0
  1357. {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/conftest.py +0 -0
  1358. {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_install_wheel_multiple_site_packages_dirs.py +0 -0
  1359. {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_issue_1630.py +0 -0
  1360. {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_issue_1637.py +0 -0
  1361. {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_issue_1641.py +0 -0
  1362. {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_issue_1668.py +0 -0
  1363. {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_issue_1745.py +0 -0
  1364. {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_issue_1973.py +0 -0
  1365. {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_issue_2065.py +0 -0
  1366. {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_issue_2160.py +0 -0
  1367. {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_issue_2248.py +0 -0
  1368. {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_issue_3107.py +0 -0
  1369. {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_pep_829.py +0 -0
  1370. {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_venv_collisions_init_py.py +0 -0
  1371. {pex-2.103.0 → pex-2.103.2}/tests/integration/venv_ITs/test_virtualenv.py +0 -0
  1372. {pex-2.103.0 → pex-2.103.2}/tests/pip/test_log_analyzer.py +0 -0
  1373. {pex-2.103.0 → pex-2.103.2}/tests/pip/test_tailer.py +0 -0
  1374. {pex-2.103.0 → pex-2.103.2}/tests/pip/test_version.py +0 -0
  1375. {pex-2.103.0 → pex-2.103.2}/tests/resolve/__init__.py +0 -0
  1376. {pex-2.103.0 → pex-2.103.2}/tests/resolve/conftest.py +0 -0
  1377. {pex-2.103.0 → pex-2.103.2}/tests/resolve/lockfile/__init__.py +0 -0
  1378. {pex-2.103.0 → pex-2.103.2}/tests/resolve/lockfile/test_download_manager.py +0 -0
  1379. {pex-2.103.0 → pex-2.103.2}/tests/resolve/lockfile/test_issue_2887.py +0 -0
  1380. {pex-2.103.0 → pex-2.103.2}/tests/resolve/lockfile/test_json_codec.py +0 -0
  1381. {pex-2.103.0 → pex-2.103.2}/tests/resolve/lockfile/test_lockfile.py +0 -0
  1382. {pex-2.103.0 → pex-2.103.2}/tests/resolve/lockfile/test_pep_751.py +0 -0
  1383. {pex-2.103.0 → pex-2.103.2}/tests/resolve/lockfile/test_requires_dist.py +0 -0
  1384. {pex-2.103.0 → pex-2.103.2}/tests/resolve/pep_691/__init__.py +0 -0
  1385. {pex-2.103.0 → pex-2.103.2}/tests/resolve/pep_691/test_api.py +0 -0
  1386. {pex-2.103.0 → pex-2.103.2}/tests/resolve/pep_691/test_fingerprint_service.py +0 -0
  1387. {pex-2.103.0 → pex-2.103.2}/tests/resolve/pep_691/test_model.py +0 -0
  1388. {pex-2.103.0 → pex-2.103.2}/tests/resolve/test_dependency_groups.py +0 -0
  1389. {pex-2.103.0 → pex-2.103.2}/tests/resolve/test_locked_resolve.py +0 -0
  1390. {pex-2.103.0 → pex-2.103.2}/tests/resolve/test_locker.py +0 -0
  1391. {pex-2.103.0 → pex-2.103.2}/tests/resolve/test_marker_env_conjunction_precedence.py +0 -0
  1392. {pex-2.103.0 → pex-2.103.2}/tests/resolve/test_package_repository.py +0 -0
  1393. {pex-2.103.0 → pex-2.103.2}/tests/resolve/test_path_mappings.py +0 -0
  1394. {pex-2.103.0 → pex-2.103.2}/tests/resolve/test_pex_repository_resolver.py +0 -0
  1395. {pex-2.103.0 → pex-2.103.2}/tests/resolve/test_resolved_requirement.py +0 -0
  1396. {pex-2.103.0 → pex-2.103.2}/tests/resolve/test_resolver_options.py +0 -0
  1397. {pex-2.103.0 → pex-2.103.2}/tests/resolve/test_script_metadata.py +0 -0
  1398. {pex-2.103.0 → pex-2.103.2}/tests/resolve/test_target_options.py +0 -0
  1399. {pex-2.103.0 → pex-2.103.2}/tests/test_artifact_url.py +0 -0
  1400. {pex-2.103.0 → pex-2.103.2}/tests/test_atexit.py +0 -0
  1401. {pex-2.103.0 → pex-2.103.2}/tests/test_atomic_directory.py +0 -0
  1402. {pex-2.103.0 → pex-2.103.2}/tests/test_bdist_pex.py +0 -0
  1403. {pex-2.103.0 → pex-2.103.2}/tests/test_common.py +0 -0
  1404. {pex-2.103.0 → pex-2.103.2}/tests/test_compatibility.py +0 -0
  1405. {pex-2.103.0 → pex-2.103.2}/tests/test_compiler.py +0 -0
  1406. {pex-2.103.0 → pex-2.103.2}/tests/test_dependency_configuration.py +0 -0
  1407. {pex-2.103.0 → pex-2.103.2}/tests/test_dependency_manager.py +0 -0
  1408. {pex-2.103.0 → pex-2.103.2}/tests/test_dist_metadata.py +0 -0
  1409. {pex-2.103.0 → pex-2.103.2}/tests/test_enum.py +0 -0
  1410. {pex-2.103.0 → pex-2.103.2}/tests/test_environment.py +0 -0
  1411. {pex-2.103.0 → pex-2.103.2}/tests/test_executables.py +0 -0
  1412. {pex-2.103.0 → pex-2.103.2}/tests/test_execution_mode.py +0 -0
  1413. {pex-2.103.0 → pex-2.103.2}/tests/test_executor.py +0 -0
  1414. {pex-2.103.0 → pex-2.103.2}/tests/test_fetcher.py +0 -0
  1415. {pex-2.103.0 → pex-2.103.2}/tests/test_finders.py +0 -0
  1416. {pex-2.103.0 → pex-2.103.2}/tests/test_hashing.py +0 -0
  1417. {pex-2.103.0 → pex-2.103.2}/tests/test_inherits_path_option.py +0 -0
  1418. {pex-2.103.0 → pex-2.103.2}/tests/test_interpreter.py +0 -0
  1419. {pex-2.103.0 → pex-2.103.2}/tests/test_interpreter_constraints.py +0 -0
  1420. {pex-2.103.0 → pex-2.103.2}/tests/test_issue_3208.py +0 -0
  1421. {pex-2.103.0 → pex-2.103.2}/tests/test_jobs.py +0 -0
  1422. {pex-2.103.0 → pex-2.103.2}/tests/test_lang.py +0 -0
  1423. {pex-2.103.0 → pex-2.103.2}/tests/test_os.py +0 -0
  1424. {pex-2.103.0 → pex-2.103.2}/tests/test_packaging.py +0 -0
  1425. {pex-2.103.0 → pex-2.103.2}/tests/test_pep_425.py +0 -0
  1426. {pex-2.103.0 → pex-2.103.2}/tests/test_pep_508.py +0 -0
  1427. {pex-2.103.0 → pex-2.103.2}/tests/test_pep_723.py +0 -0
  1428. {pex-2.103.0 → pex-2.103.2}/tests/test_pex.py +0 -0
  1429. {pex-2.103.0 → pex-2.103.2}/tests/test_pex_binary.py +0 -0
  1430. {pex-2.103.0 → pex-2.103.2}/tests/test_pex_bootstrapper.py +0 -0
  1431. {pex-2.103.0 → pex-2.103.2}/tests/test_pex_builder.py +0 -0
  1432. {pex-2.103.0 → pex-2.103.2}/tests/test_pex_info.py +0 -0
  1433. {pex-2.103.0 → pex-2.103.2}/tests/test_pex_root.py +0 -0
  1434. {pex-2.103.0 → pex-2.103.2}/tests/test_pex_warnings.py +0 -0
  1435. {pex-2.103.0 → pex-2.103.2}/tests/test_pip.py +0 -0
  1436. {pex-2.103.0 → pex-2.103.2}/tests/test_platform.py +0 -0
  1437. {pex-2.103.0 → pex-2.103.2}/tests/test_pth.py +0 -0
  1438. {pex-2.103.0 → pex-2.103.2}/tests/test_pyvenv_cfg.py +0 -0
  1439. {pex-2.103.0 → pex-2.103.2}/tests/test_requirements.py +0 -0
  1440. {pex-2.103.0 → pex-2.103.2}/tests/test_resolver.py +0 -0
  1441. {pex-2.103.0 → pex-2.103.2}/tests/test_sorted_tuple.py +0 -0
  1442. {pex-2.103.0 → pex-2.103.2}/tests/test_specifier_sets.py +0 -0
  1443. {pex-2.103.0 → pex-2.103.2}/tests/test_target_system.py +0 -0
  1444. {pex-2.103.0 → pex-2.103.2}/tests/test_targets.py +0 -0
  1445. {pex-2.103.0 → pex-2.103.2}/tests/test_tarjan.py +0 -0
  1446. {pex-2.103.0 → pex-2.103.2}/tests/test_third_party.py +0 -0
  1447. {pex-2.103.0 → pex-2.103.2}/tests/test_toml.py +0 -0
  1448. {pex-2.103.0 → pex-2.103.2}/tests/test_util.py +0 -0
  1449. {pex-2.103.0 → pex-2.103.2}/tests/test_variables.py +0 -0
  1450. {pex-2.103.0 → pex-2.103.2}/tests/test_vendor.py +0 -0
  1451. {pex-2.103.0 → pex-2.103.2}/tests/test_virtualenv.py +0 -0
  1452. {pex-2.103.0 → pex-2.103.2}/tests/test_windows.py +0 -0
  1453. {pex-2.103.0 → pex-2.103.2}/tests/test_zip_utils.py +0 -0
  1454. {pex-2.103.0 → pex-2.103.2}/tests/tools/__init__.py +0 -0
  1455. {pex-2.103.0 → pex-2.103.2}/tests/tools/commands/__init__.py +0 -0
  1456. {pex-2.103.0 → pex-2.103.2}/tests/tools/commands/test_interpreter_command.py +0 -0
  1457. {pex-2.103.0 → pex-2.103.2}/tests/tools/commands/test_repository.py +0 -0
  1458. {pex-2.103.0 → pex-2.103.2}/tests/tools/commands/test_venv.py +0 -0
  1459. {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.0
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.0/pex
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.0/CHANGES.md
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.0
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=3,
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=3,
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=3,
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, Iterable, Optional, Sequence, Union
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: Iterable[Distribution]
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
- PY2,
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 TYPE_CHECKING:
38
- from ssl import SSLContext
39
- from typing import Any, BinaryIO, Dict, Iterable, Iterator, Mapping, Optional, Text
40
-
41
- import attr # vendor:skip
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
- BinaryIO = None
44
- from pex.third_party import attr
45
-
46
-
47
- @contextmanager
48
- def guard_stdout():
49
- # type: () -> Iterator[None]
50
- # Under PyPy 3.9 and 3.10, `ssl.create_default_context` causes spurious informational text about
51
- # SSL certs to be emitted to stdout; so we squelch this.
52
- if hasattr(sys, "pypy_version_info") and sys.version_info[:2] >= (3, 9):
53
- with open(os.devnull, "w") as fp:
54
- # The `contextlib.redirect_stdout` function is available for Python 3.4+.
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
- def get_ssl_context(network_configuration=None):
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=pex.resolve(),
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=tuple(pex.resolve()),
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(
@@ -1,4 +1,4 @@
1
1
  # Copyright 2015 Pex project contributors.
2
2
  # Licensed under the Apache License, Version 2.0 (see LICENSE).
3
3
 
4
- __version__ = "2.103.0"
4
+ __version__ = "2.103.2"
@@ -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