pex 2.64.1__py2.py3-none-any.whl → 2.69.0__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pex might be problematic. Click here for more details.

Files changed (69) hide show
  1. pex/bin/pex.py +2 -1
  2. pex/build_backend/configuration.py +5 -5
  3. pex/build_backend/wrap.py +2 -19
  4. pex/cli/commands/lock.py +4 -2
  5. pex/cli/commands/run.py +10 -11
  6. pex/cli/pex.py +11 -4
  7. pex/dist_metadata.py +29 -2
  8. pex/docs/html/_pagefind/fragment/en_4250138.pf_fragment +0 -0
  9. pex/docs/html/_pagefind/fragment/en_7125dad.pf_fragment +0 -0
  10. pex/docs/html/_pagefind/fragment/en_785d562.pf_fragment +0 -0
  11. pex/docs/html/_pagefind/fragment/en_8e94bb8.pf_fragment +0 -0
  12. pex/docs/html/_pagefind/fragment/{en_17782b6.pf_fragment → en_a0396bb.pf_fragment} +0 -0
  13. pex/docs/html/_pagefind/fragment/en_a8a3588.pf_fragment +0 -0
  14. pex/docs/html/_pagefind/fragment/en_c07d988.pf_fragment +0 -0
  15. pex/docs/html/_pagefind/fragment/en_d718411.pf_fragment +0 -0
  16. pex/docs/html/_pagefind/index/en_a2e3c5e.pf_index +0 -0
  17. pex/docs/html/_pagefind/pagefind-entry.json +1 -1
  18. pex/docs/html/_pagefind/pagefind.en_4ce1afa9e3.pf_meta +0 -0
  19. pex/docs/html/_static/documentation_options.js +1 -1
  20. pex/docs/html/api/vars.html +5 -5
  21. pex/docs/html/buildingpex.html +5 -5
  22. pex/docs/html/genindex.html +5 -5
  23. pex/docs/html/index.html +5 -5
  24. pex/docs/html/recipes.html +5 -5
  25. pex/docs/html/scie.html +5 -5
  26. pex/docs/html/search.html +5 -5
  27. pex/docs/html/whatispex.html +5 -5
  28. pex/hashing.py +71 -9
  29. pex/interpreter_constraints.py +1 -1
  30. pex/jobs.py +13 -6
  31. pex/pep_376.py +21 -6
  32. pex/pep_427.py +30 -8
  33. pex/pex_builder.py +1 -4
  34. pex/pip/local_project.py +6 -14
  35. pex/pip/tool.py +3 -3
  36. pex/pip/vcs.py +93 -44
  37. pex/pip/version.py +7 -0
  38. pex/resolve/configured_resolve.py +13 -5
  39. pex/resolve/lock_downloader.py +1 -0
  40. pex/resolve/locker.py +30 -14
  41. pex/resolve/lockfile/create.py +2 -7
  42. pex/resolve/pre_resolved_resolver.py +1 -7
  43. pex/resolve/project.py +233 -47
  44. pex/resolve/resolver_configuration.py +1 -1
  45. pex/resolve/resolver_options.py +14 -9
  46. pex/resolve/venv_resolver.py +221 -65
  47. pex/resolver.py +59 -55
  48. pex/scie/__init__.py +40 -1
  49. pex/scie/model.py +2 -0
  50. pex/scie/science.py +25 -3
  51. pex/sdist.py +219 -0
  52. pex/version.py +1 -1
  53. pex/wheel.py +16 -12
  54. {pex-2.64.1.dist-info → pex-2.69.0.dist-info}/METADATA +4 -4
  55. {pex-2.64.1.dist-info → pex-2.69.0.dist-info}/RECORD +60 -59
  56. {pex-2.64.1.dist-info → pex-2.69.0.dist-info}/entry_points.txt +1 -0
  57. pex/docs/html/_pagefind/fragment/en_1048255.pf_fragment +0 -0
  58. pex/docs/html/_pagefind/fragment/en_3f7efc3.pf_fragment +0 -0
  59. pex/docs/html/_pagefind/fragment/en_40667cd.pf_fragment +0 -0
  60. pex/docs/html/_pagefind/fragment/en_55ee2f4.pf_fragment +0 -0
  61. pex/docs/html/_pagefind/fragment/en_d6d92dd.pf_fragment +0 -0
  62. pex/docs/html/_pagefind/fragment/en_d834316.pf_fragment +0 -0
  63. pex/docs/html/_pagefind/fragment/en_ec2ce54.pf_fragment +0 -0
  64. pex/docs/html/_pagefind/index/en_17effb2.pf_index +0 -0
  65. pex/docs/html/_pagefind/pagefind.en_49ec86cf86.pf_meta +0 -0
  66. {pex-2.64.1.dist-info → pex-2.69.0.dist-info}/WHEEL +0 -0
  67. {pex-2.64.1.dist-info → pex-2.69.0.dist-info}/licenses/LICENSE +0 -0
  68. {pex-2.64.1.dist-info → pex-2.69.0.dist-info}/pylock/pylock.toml +0 -0
  69. {pex-2.64.1.dist-info → pex-2.69.0.dist-info}/top_level.txt +0 -0
pex/bin/pex.py CHANGED
@@ -759,7 +759,8 @@ def configure_clp_sources(parser):
759
759
  parser,
760
760
  project_help=(
761
761
  "Add the local project at the specified path to the generated .pex file along with "
762
- "its transitive dependencies."
762
+ "its transitive dependencies. The path can be that of a project directory, a project"
763
+ "sdist or a pre-built project wheel."
763
764
  ),
764
765
  )
765
766
 
@@ -63,8 +63,8 @@ class Plugin(object):
63
63
 
64
64
  return cls(modify_sdist=modify_sdist, modify_wheel=modify_wheel)
65
65
 
66
- _modify_sdist = attr.ib() # type: Optional[Callable[[str], None]]
67
- _modify_wheel = attr.ib() # type: Optional[Callable[[str, str], None]]
66
+ _modify_sdist = attr.ib() # type: Optional[Callable[[Text], None]]
67
+ _modify_wheel = attr.ib() # type: Optional[Callable[[Text, Text], None]]
68
68
 
69
69
  @property
70
70
  def modifies_sdists(self):
@@ -72,7 +72,7 @@ class Plugin(object):
72
72
  return self._modify_sdist is not None
73
73
 
74
74
  def modify_sdist(self, sdist_dir):
75
- # type: (str) -> Any
75
+ # type: (Text) -> Any
76
76
  if self._modify_sdist:
77
77
  return self._modify_sdist(sdist_dir)
78
78
  return None
@@ -84,8 +84,8 @@ class Plugin(object):
84
84
 
85
85
  def modify_wheel(
86
86
  self,
87
- wheel_dir, # type: str
88
- dist_info_dir_relpath, # type: str
87
+ wheel_dir, # type: Text
88
+ dist_info_dir_relpath, # type: Text
89
89
  ):
90
90
  # type: (...) -> Any
91
91
  if self._modify_wheel:
pex/build_backend/wrap.py CHANGED
@@ -11,6 +11,7 @@ import io
11
11
  import os
12
12
  import tarfile
13
13
 
14
+ from pex import sdist
14
15
  from pex.build_backend import BuildError
15
16
  from pex.build_backend.configuration import load_config
16
17
  from pex.build_backend.pylock import ScriptLocks
@@ -63,25 +64,7 @@ def build_sdist(
63
64
 
64
65
  sdist_path = os.path.join(sdist_directory, sdist_name)
65
66
  build_dir = _build_dir("sdist")
66
-
67
- with tarfile.open(sdist_path) as tf:
68
- tf.extractall(build_dir)
69
-
70
- entries = os.listdir(build_dir)
71
- if len(entries) != 1:
72
- raise BuildError(
73
- "Calling `{backend}.build_sdist` produced an sdist with unexpected contents.\n"
74
- "Expected expected one top-level <project>-<version> directory but found {count}:\n"
75
- "{entries}".format(
76
- backend=_CONFIG.delegate_build_backend,
77
- count=len(entries),
78
- entries="\n".join(entries),
79
- )
80
- )
81
-
82
- tarball_root_dir_name = entries[0]
83
- tarball_root_dir = os.path.join(build_dir, tarball_root_dir_name)
84
-
67
+ tarball_root_dir = sdist.extract_tarball(sdist_path, dest_dir=build_dir)
85
68
  for plugin in plugins:
86
69
  plugin.modify_sdist(tarball_root_dir)
87
70
 
pex/cli/commands/lock.py CHANGED
@@ -36,7 +36,7 @@ from pex.installed_wheel import InstalledWheel
36
36
  from pex.interpreter import PythonInterpreter
37
37
  from pex.orderedset import OrderedSet
38
38
  from pex.os import is_exe, safe_execv
39
- from pex.pep_376 import Record
39
+ from pex.pep_376 import InstalledFile, Record
40
40
  from pex.pep_427 import InstallableType, reinstall_venv
41
41
  from pex.pep_440 import Version
42
42
  from pex.pep_503 import ProjectName
@@ -306,6 +306,7 @@ class SyncTarget(object):
306
306
  for installed_file in Record.read(
307
307
  lines=distribution.iter_metadata_lines("RECORD")
308
308
  )
309
+ if isinstance(installed_file, InstalledFile)
309
310
  )
310
311
  elif distribution.metadata.type is MetadataType.EGG_INFO:
311
312
  installed_files = distribution.metadata.files.metadata_file_rel_path(
@@ -688,7 +689,8 @@ class Lock(OutputMixin, JsonMixin, BuildTimeCommand):
688
689
  options_group,
689
690
  project_help=(
690
691
  "Add the transitive dependencies of the local project at the specified path to "
691
- "the lock but do not lock project itself."
692
+ "the lock but do not lock project itself. The path can be that of a project "
693
+ "directory, a project sdist or a pre-built project wheel."
692
694
  ),
693
695
  )
694
696
  dependency_configuration.register(options_group)
pex/cli/commands/run.py CHANGED
@@ -10,12 +10,11 @@ import os.path
10
10
  import posixpath
11
11
  import shutil
12
12
  import sys
13
- import tarfile
14
13
  from argparse import _ActionsContainer
15
- from contextlib import closing
16
14
 
17
15
  from pex import dependency_configuration, interpreter
18
16
  from pex import resolver as pip_resolver
17
+ from pex import sdist
19
18
  from pex.artifact_url import ArtifactURL, Fingerprint
20
19
  from pex.atomic_directory import atomic_directory
21
20
  from pex.build_system import pep_517
@@ -676,19 +675,19 @@ class Run(CacheAwareMixin, BuildTimeCommand):
676
675
  return package, os.path.join(lock_dest_dir, lock_path)
677
676
  elif is_sdist(distribution.path):
678
677
  if is_tar_sdist(distribution.path):
679
- with closing(tarfile.open(distribution.path)) as tf:
680
- tf.extractall(lock_dest_dir)
678
+ sdist_root = sdist.extract_tarball(distribution.path, dest_dir=lock_dest_dir)
681
679
  else:
682
680
  with open_zip(distribution.path) as zf:
683
681
  zf.extractall(lock_dest_dir)
684
- entries = glob.glob(os.path.join(lock_dest_dir, "*"))
685
- if len(entries) != 1:
686
- return Error(
687
- "Expected {sdist} to have 1 entry, found {count}: {entries}".format(
688
- sdist=distribution.path, count=len(entries), entries=entries
682
+ entries = glob.glob(os.path.join(lock_dest_dir, "*"))
683
+ if len(entries) != 1:
684
+ return Error(
685
+ "Expected {sdist} to have 1 entry, found {count}: {entries}".format(
686
+ sdist=distribution.path, count=len(entries), entries=entries
687
+ )
689
688
  )
690
- )
691
- sdist_root = entries[0]
689
+ sdist_root = entries[0]
690
+
692
691
  for lock_name in run_spec.locks:
693
692
  lock_path = os.path.join(sdist_root, lock_name)
694
693
  if os.path.exists(lock_path):
pex/cli/pex.py CHANGED
@@ -3,6 +3,7 @@
3
3
 
4
4
  from __future__ import absolute_import
5
5
 
6
+ import sys
6
7
  from argparse import ArgumentError, ArgumentTypeError
7
8
 
8
9
  from pex.cli import commands
@@ -12,7 +13,7 @@ from pex.result import catch
12
13
  from pex.typing import TYPE_CHECKING
13
14
 
14
15
  if TYPE_CHECKING:
15
- from typing import Union
16
+ from typing import Optional, Union
16
17
 
17
18
 
18
19
  class Pex3(Main[BuildTimeCommand]):
@@ -23,14 +24,20 @@ class Pex3(Main[BuildTimeCommand]):
23
24
  """
24
25
 
25
26
 
26
- def main():
27
- # type: () -> Union[int, str]
27
+ def main(subcommand=None):
28
+ # type: (Optional[str]) -> Union[int, str]
28
29
 
29
30
  pex3 = Pex3(command_types=commands.all_commands())
30
31
  try:
31
- with pex3.parsed_command() as command:
32
+ args = [subcommand] + sys.argv[1:] if subcommand else None
33
+ with pex3.parsed_command(args=args) as command:
32
34
  result = catch(command.run)
33
35
  result.maybe_display()
34
36
  return result.exit_code
35
37
  except (ArgumentError, ArgumentTypeError, GlobalConfigurationError) as e:
36
38
  return str(e)
39
+
40
+
41
+ def run():
42
+ # type: () -> Union[int, str]
43
+ return main("run")
pex/dist_metadata.py CHANGED
@@ -9,6 +9,7 @@ import functools
9
9
  import glob
10
10
  import importlib
11
11
  import itertools
12
+ import json
12
13
  import os
13
14
  import sys
14
15
  import tarfile
@@ -22,7 +23,7 @@ from textwrap import dedent
22
23
 
23
24
  from pex import pex_warnings, specifier_sets
24
25
  from pex.common import open_zip, pluralize
25
- from pex.compatibility import PY2, to_unicode
26
+ from pex.compatibility import PY2, string, to_unicode
26
27
  from pex.enum import Enum
27
28
  from pex.exceptions import reportable_unexpected_error_msg
28
29
  from pex.pep_440 import Version
@@ -780,7 +781,7 @@ class Constraint(object):
780
781
  )
781
782
 
782
783
  name = attr.ib(eq=False) # type: str
783
- specifier = attr.ib(factory=SpecifierSet) # type: SpecifierSet
784
+ specifier = attr.ib(factory=SpecifierSet, order=False) # type: SpecifierSet
784
785
  marker = attr.ib(default=None, eq=str) # type: Optional[Marker]
785
786
 
786
787
  project_name = attr.ib(init=False, repr=False) # type: ProjectName
@@ -1193,6 +1194,32 @@ class Distribution(object):
1193
1194
  source=os.path.join(self.metadata.files.metadata.location, entry_points_txt_relpath),
1194
1195
  )
1195
1196
 
1197
+ def editable_install_url(self):
1198
+ # type: () -> Optional[Text]
1199
+
1200
+ # For the spec, see: https://peps.python.org/pep-0660/#frontend-requirements
1201
+ direct_url_json_bytes = self._read_metadata_file("direct_url.json")
1202
+ if not direct_url_json_bytes:
1203
+ return None
1204
+
1205
+ direct_url_json_data = json.loads(direct_url_json_bytes)
1206
+ if not direct_url_json_data.get("dir_info", {}).get("editable", False):
1207
+ return None
1208
+
1209
+ url = direct_url_json_data.get("url", None)
1210
+ if url is None:
1211
+ return None
1212
+
1213
+ if not isinstance(url, string):
1214
+ raise InvalidMetadataError(
1215
+ "The direct_url.json metadata for {dist} at {location} is invalid.\n"
1216
+ "Expected `url` to be a string but found {value} of type {type}".format(
1217
+ dist=self, location=self.location, value=url, type=type(url)
1218
+ )
1219
+ )
1220
+
1221
+ return cast("Text", url)
1222
+
1196
1223
  def __str__(self):
1197
1224
  # type: () -> str
1198
1225
  return "{project_name} {version}".format(
@@ -1 +1 @@
1
- {"version":"1.3.0","languages":{"en":{"hash":"en_49ec86cf86","wasm":"en","page_count":8}}}
1
+ {"version":"1.3.0","languages":{"en":{"hash":"en_4ce1afa9e3","wasm":"en","page_count":8}}}
@@ -1,5 +1,5 @@
1
1
  const DOCUMENTATION_OPTIONS = {
2
- VERSION: '2.64.1',
2
+ VERSION: '2.69.0',
3
3
  LANGUAGE: 'en',
4
4
  COLLAPSE_INDEX: false,
5
5
  BUILDER: 'html',
@@ -8,7 +8,7 @@
8
8
  <link rel="prefetch" href="../_static/pex-logo-dark.png" as="image">
9
9
 
10
10
  <link rel="shortcut icon" href="../_static/pex-icon.png"><!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25 -->
11
- <title>PEX runtime environment variables - Pex Docs (v2.64.1)</title>
11
+ <title>PEX runtime environment variables - Pex Docs (v2.69.0)</title>
12
12
  <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d111a655" />
13
13
  <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=580074bf" />
14
14
  <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=8dab3a3b" />
@@ -163,7 +163,7 @@
163
163
  </label>
164
164
  </div>
165
165
  <div class="header-center">
166
- <a href="../index.html"><div class="brand">Pex Docs (v2.64.1)</div></a>
166
+ <a href="../index.html"><div class="brand">Pex Docs (v2.69.0)</div></a>
167
167
  </div>
168
168
  <div class="header-right">
169
169
  <div class="theme-toggle-container theme-toggle-header">
@@ -643,12 +643,12 @@
643
643
  </div>
644
644
  <div class="right-details">
645
645
  <div class="icons">
646
- <a class="muted-link " href="https://pypi.org/project/pex/2.64.1/" aria-label="PyPI"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
646
+ <a class="muted-link " href="https://pypi.org/project/pex/2.69.0/" aria-label="PyPI"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
647
647
  <path d="M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z">
648
648
  </path>
649
649
  </svg>
650
650
  </a>
651
- <a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.64.1/pex" aria-label="Download"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
651
+ <a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.69.0/pex" aria-label="Download"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
652
652
  <path d="M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z">
653
653
  </path>
654
654
  </svg>
@@ -671,7 +671,7 @@
671
671
 
672
672
  </aside>
673
673
  </div>
674
- </div><script src="../_static/documentation_options.js?v=a39c154c"></script>
674
+ </div><script src="../_static/documentation_options.js?v=525daa63"></script>
675
675
  <script src="../_static/doctools.js?v=9bcbadda"></script>
676
676
  <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
677
677
  <script src="../_static/scripts/furo.js?v=46bd48cc"></script>
@@ -8,7 +8,7 @@
8
8
  <link rel="prefetch" href="_static/pex-logo-dark.png" as="image">
9
9
 
10
10
  <link rel="shortcut icon" href="_static/pex-icon.png"><!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25 -->
11
- <title>Building .pex files - Pex Docs (v2.64.1)</title>
11
+ <title>Building .pex files - Pex Docs (v2.69.0)</title>
12
12
  <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
13
13
  <link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
14
14
  <link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=8dab3a3b" />
@@ -163,7 +163,7 @@
163
163
  </label>
164
164
  </div>
165
165
  <div class="header-center">
166
- <a href="index.html"><div class="brand">Pex Docs (v2.64.1)</div></a>
166
+ <a href="index.html"><div class="brand">Pex Docs (v2.69.0)</div></a>
167
167
  </div>
168
168
  <div class="header-right">
169
169
  <div class="theme-toggle-container theme-toggle-header">
@@ -681,12 +681,12 @@ scary like <code class="docutils literal notranslate"><span class="pre">sudo</sp
681
681
  </div>
682
682
  <div class="right-details">
683
683
  <div class="icons">
684
- <a class="muted-link " href="https://pypi.org/project/pex/2.64.1/" aria-label="PyPI"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
684
+ <a class="muted-link " href="https://pypi.org/project/pex/2.69.0/" aria-label="PyPI"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
685
685
  <path d="M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z">
686
686
  </path>
687
687
  </svg>
688
688
  </a>
689
- <a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.64.1/pex" aria-label="Download"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
689
+ <a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.69.0/pex" aria-label="Download"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
690
690
  <path d="M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z">
691
691
  </path>
692
692
  </svg>
@@ -709,7 +709,7 @@ scary like <code class="docutils literal notranslate"><span class="pre">sudo</sp
709
709
 
710
710
  </aside>
711
711
  </div>
712
- </div><script src="_static/documentation_options.js?v=a39c154c"></script>
712
+ </div><script src="_static/documentation_options.js?v=525daa63"></script>
713
713
  <script src="_static/doctools.js?v=9bcbadda"></script>
714
714
  <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
715
715
  <script src="_static/scripts/furo.js?v=46bd48cc"></script>
@@ -6,7 +6,7 @@
6
6
  <link rel="prefetch" href="_static/pex-logo-light.png" as="image">
7
7
  <link rel="prefetch" href="_static/pex-logo-dark.png" as="image">
8
8
 
9
- <link rel="shortcut icon" href="_static/pex-icon.png"><!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25 --><title>Index - Pex Docs (v2.64.1)</title>
9
+ <link rel="shortcut icon" href="_static/pex-icon.png"><!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25 --><title>Index - Pex Docs (v2.69.0)</title>
10
10
  <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
11
11
  <link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
12
12
  <link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=8dab3a3b" />
@@ -161,7 +161,7 @@
161
161
  </label>
162
162
  </div>
163
163
  <div class="header-center">
164
- <a href="index.html"><div class="brand">Pex Docs (v2.64.1)</div></a>
164
+ <a href="index.html"><div class="brand">Pex Docs (v2.69.0)</div></a>
165
165
  </div>
166
166
  <div class="header-right">
167
167
  <div class="theme-toggle-container theme-toggle-header">
@@ -260,12 +260,12 @@
260
260
  </div>
261
261
  <div class="right-details">
262
262
  <div class="icons">
263
- <a class="muted-link " href="https://pypi.org/project/pex/2.64.1/" aria-label="PyPI"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
263
+ <a class="muted-link " href="https://pypi.org/project/pex/2.69.0/" aria-label="PyPI"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
264
264
  <path d="M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z">
265
265
  </path>
266
266
  </svg>
267
267
  </a>
268
- <a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.64.1/pex" aria-label="Download"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
268
+ <a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.69.0/pex" aria-label="Download"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
269
269
  <path d="M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z">
270
270
  </path>
271
271
  </svg>
@@ -288,7 +288,7 @@
288
288
 
289
289
  </aside>
290
290
  </div>
291
- </div><script src="_static/documentation_options.js?v=a39c154c"></script>
291
+ </div><script src="_static/documentation_options.js?v=525daa63"></script>
292
292
  <script src="_static/doctools.js?v=9bcbadda"></script>
293
293
  <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
294
294
  <script src="_static/scripts/furo.js?v=46bd48cc"></script>
pex/docs/html/index.html CHANGED
@@ -8,7 +8,7 @@
8
8
  <link rel="prefetch" href="_static/pex-logo-dark.png" as="image">
9
9
 
10
10
  <link rel="shortcut icon" href="_static/pex-icon.png"><!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25 -->
11
- <title>Pex Docs (v2.64.1)</title>
11
+ <title>Pex Docs (v2.69.0)</title>
12
12
  <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
13
13
  <link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
14
14
  <link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=8dab3a3b" />
@@ -163,7 +163,7 @@
163
163
  </label>
164
164
  </div>
165
165
  <div class="header-center">
166
- <a href="#"><div class="brand">Pex Docs (v2.64.1)</div></a>
166
+ <a href="#"><div class="brand">Pex Docs (v2.69.0)</div></a>
167
167
  </div>
168
168
  <div class="header-right">
169
169
  <div class="theme-toggle-container theme-toggle-header">
@@ -341,12 +341,12 @@ To go straight to building pex files, see <a class="reference internal" href="bu
341
341
  </div>
342
342
  <div class="right-details">
343
343
  <div class="icons">
344
- <a class="muted-link " href="https://pypi.org/project/pex/2.64.1/" aria-label="PyPI"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
344
+ <a class="muted-link " href="https://pypi.org/project/pex/2.69.0/" aria-label="PyPI"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
345
345
  <path d="M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z">
346
346
  </path>
347
347
  </svg>
348
348
  </a>
349
- <a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.64.1/pex" aria-label="Download"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
349
+ <a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.69.0/pex" aria-label="Download"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
350
350
  <path d="M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z">
351
351
  </path>
352
352
  </svg>
@@ -389,7 +389,7 @@ To go straight to building pex files, see <a class="reference internal" href="bu
389
389
 
390
390
  </aside>
391
391
  </div>
392
- </div><script src="_static/documentation_options.js?v=a39c154c"></script>
392
+ </div><script src="_static/documentation_options.js?v=525daa63"></script>
393
393
  <script src="_static/doctools.js?v=9bcbadda"></script>
394
394
  <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
395
395
  <script src="_static/scripts/furo.js?v=46bd48cc"></script>
@@ -8,7 +8,7 @@
8
8
  <link rel="prefetch" href="_static/pex-logo-dark.png" as="image">
9
9
 
10
10
  <link rel="shortcut icon" href="_static/pex-icon.png"><!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25 -->
11
- <title>PEX Recipes and Notes - Pex Docs (v2.64.1)</title>
11
+ <title>PEX Recipes and Notes - Pex Docs (v2.69.0)</title>
12
12
  <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
13
13
  <link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
14
14
  <link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=8dab3a3b" />
@@ -163,7 +163,7 @@
163
163
  </label>
164
164
  </div>
165
165
  <div class="header-center">
166
- <a href="index.html"><div class="brand">Pex Docs (v2.64.1)</div></a>
166
+ <a href="index.html"><div class="brand">Pex Docs (v2.69.0)</div></a>
167
167
  </div>
168
168
  <div class="header-right">
169
169
  <div class="theme-toggle-container theme-toggle-header">
@@ -430,12 +430,12 @@ $<span class="w"> </span><span class="nb">export</span><span class="w"> </span><
430
430
  </div>
431
431
  <div class="right-details">
432
432
  <div class="icons">
433
- <a class="muted-link " href="https://pypi.org/project/pex/2.64.1/" aria-label="PyPI"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
433
+ <a class="muted-link " href="https://pypi.org/project/pex/2.69.0/" aria-label="PyPI"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
434
434
  <path d="M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z">
435
435
  </path>
436
436
  </svg>
437
437
  </a>
438
- <a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.64.1/pex" aria-label="Download"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
438
+ <a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.69.0/pex" aria-label="Download"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
439
439
  <path d="M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z">
440
440
  </path>
441
441
  </svg>
@@ -482,7 +482,7 @@ $<span class="w"> </span><span class="nb">export</span><span class="w"> </span><
482
482
 
483
483
  </aside>
484
484
  </div>
485
- </div><script src="_static/documentation_options.js?v=a39c154c"></script>
485
+ </div><script src="_static/documentation_options.js?v=525daa63"></script>
486
486
  <script src="_static/doctools.js?v=9bcbadda"></script>
487
487
  <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
488
488
  <script src="_static/scripts/furo.js?v=46bd48cc"></script>
pex/docs/html/scie.html CHANGED
@@ -8,7 +8,7 @@
8
8
  <link rel="prefetch" href="_static/pex-logo-dark.png" as="image">
9
9
 
10
10
  <link rel="shortcut icon" href="_static/pex-icon.png"><!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25 -->
11
- <title>PEX with included Python interpreter - Pex Docs (v2.64.1)</title>
11
+ <title>PEX with included Python interpreter - Pex Docs (v2.69.0)</title>
12
12
  <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
13
13
  <link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
14
14
  <link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=8dab3a3b" />
@@ -163,7 +163,7 @@
163
163
  </label>
164
164
  </div>
165
165
  <div class="header-center">
166
- <a href="index.html"><div class="brand">Pex Docs (v2.64.1)</div></a>
166
+ <a href="index.html"><div class="brand">Pex Docs (v2.69.0)</div></a>
167
167
  </div>
168
168
  <div class="header-right">
169
169
  <div class="theme-toggle-container theme-toggle-header">
@@ -623,12 +623,12 @@ uuid
623
623
  </div>
624
624
  <div class="right-details">
625
625
  <div class="icons">
626
- <a class="muted-link " href="https://pypi.org/project/pex/2.64.1/" aria-label="PyPI"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
626
+ <a class="muted-link " href="https://pypi.org/project/pex/2.69.0/" aria-label="PyPI"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
627
627
  <path d="M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z">
628
628
  </path>
629
629
  </svg>
630
630
  </a>
631
- <a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.64.1/pex" aria-label="Download"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
631
+ <a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.69.0/pex" aria-label="Download"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
632
632
  <path d="M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z">
633
633
  </path>
634
634
  </svg>
@@ -672,7 +672,7 @@ uuid
672
672
 
673
673
  </aside>
674
674
  </div>
675
- </div><script src="_static/documentation_options.js?v=a39c154c"></script>
675
+ </div><script src="_static/documentation_options.js?v=525daa63"></script>
676
676
  <script src="_static/doctools.js?v=9bcbadda"></script>
677
677
  <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
678
678
  <script src="_static/scripts/furo.js?v=46bd48cc"></script>
pex/docs/html/search.html CHANGED
@@ -6,7 +6,7 @@
6
6
  <link rel="prefetch" href="_static/pex-logo-light.png" as="image">
7
7
  <link rel="prefetch" href="_static/pex-logo-dark.png" as="image">
8
8
 
9
- <link rel="shortcut icon" href="_static/pex-icon.png"><!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25 --><title>Search - Pex Docs (v2.64.1)</title><link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
9
+ <link rel="shortcut icon" href="_static/pex-icon.png"><!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25 --><title>Search - Pex Docs (v2.69.0)</title><link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
10
10
  <link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
11
11
  <link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=8dab3a3b" />
12
12
 
@@ -176,7 +176,7 @@
176
176
  </label>
177
177
  </div>
178
178
  <div class="header-center">
179
- <a href="index.html"><div class="brand">Pex Docs (v2.64.1)</div></a>
179
+ <a href="index.html"><div class="brand">Pex Docs (v2.69.0)</div></a>
180
180
  </div>
181
181
  <div class="header-right">
182
182
  <div class="theme-toggle-container theme-toggle-header">
@@ -273,12 +273,12 @@
273
273
  </div>
274
274
  <div class="right-details">
275
275
  <div class="icons">
276
- <a class="muted-link " href="https://pypi.org/project/pex/2.64.1/" aria-label="PyPI"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
276
+ <a class="muted-link " href="https://pypi.org/project/pex/2.69.0/" aria-label="PyPI"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
277
277
  <path d="M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z">
278
278
  </path>
279
279
  </svg>
280
280
  </a>
281
- <a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.64.1/pex" aria-label="Download"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
281
+ <a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.69.0/pex" aria-label="Download"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
282
282
  <path d="M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z">
283
283
  </path>
284
284
  </svg>
@@ -301,7 +301,7 @@
301
301
 
302
302
  </aside>
303
303
  </div>
304
- </div><script src="_static/documentation_options.js?v=a39c154c"></script>
304
+ </div><script src="_static/documentation_options.js?v=525daa63"></script>
305
305
  <script src="_static/doctools.js?v=9bcbadda"></script>
306
306
  <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
307
307
  <script src="_static/scripts/furo.js?v=46bd48cc"></script>