pex 2.66.0__py2.py3-none-any.whl → 2.67.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 (45) hide show
  1. pex/docs/html/_pagefind/fragment/en_4dc5d41.pf_fragment +0 -0
  2. pex/docs/html/_pagefind/fragment/en_5ff234a.pf_fragment +0 -0
  3. pex/docs/html/_pagefind/fragment/en_7faba29.pf_fragment +0 -0
  4. pex/docs/html/_pagefind/fragment/en_8531963.pf_fragment +0 -0
  5. pex/docs/html/_pagefind/fragment/en_8d197bb.pf_fragment +0 -0
  6. pex/docs/html/_pagefind/fragment/en_e195b46.pf_fragment +0 -0
  7. pex/docs/html/_pagefind/fragment/{en_af1fb65.pf_fragment → en_f384da1.pf_fragment} +0 -0
  8. pex/docs/html/_pagefind/fragment/en_fbb9204.pf_fragment +0 -0
  9. pex/docs/html/_pagefind/index/{en_f48c2e4.pf_index → en_c236b81.pf_index} +0 -0
  10. pex/docs/html/_pagefind/pagefind-entry.json +1 -1
  11. pex/docs/html/_pagefind/pagefind.en_849a96a3e6.pf_meta +0 -0
  12. pex/docs/html/_static/documentation_options.js +1 -1
  13. pex/docs/html/api/vars.html +5 -5
  14. pex/docs/html/buildingpex.html +5 -5
  15. pex/docs/html/genindex.html +5 -5
  16. pex/docs/html/index.html +5 -5
  17. pex/docs/html/recipes.html +5 -5
  18. pex/docs/html/scie.html +5 -5
  19. pex/docs/html/search.html +5 -5
  20. pex/docs/html/whatispex.html +5 -5
  21. pex/jobs.py +13 -6
  22. pex/resolve/configured_resolve.py +13 -5
  23. pex/resolve/locker.py +17 -12
  24. pex/resolve/lockfile/create.py +1 -6
  25. pex/resolve/pre_resolved_resolver.py +1 -7
  26. pex/resolve/resolver_configuration.py +1 -1
  27. pex/resolve/resolver_options.py +14 -9
  28. pex/resolve/venv_resolver.py +189 -55
  29. pex/resolver.py +40 -35
  30. pex/version.py +1 -1
  31. {pex-2.66.0.dist-info → pex-2.67.0.dist-info}/METADATA +4 -4
  32. {pex-2.66.0.dist-info → pex-2.67.0.dist-info}/RECORD +37 -37
  33. pex/docs/html/_pagefind/fragment/en_1caf19d.pf_fragment +0 -0
  34. pex/docs/html/_pagefind/fragment/en_2268ed8.pf_fragment +0 -0
  35. pex/docs/html/_pagefind/fragment/en_469c87d.pf_fragment +0 -0
  36. pex/docs/html/_pagefind/fragment/en_4a75d8d.pf_fragment +0 -0
  37. pex/docs/html/_pagefind/fragment/en_9fe4bcc.pf_fragment +0 -0
  38. pex/docs/html/_pagefind/fragment/en_a951443.pf_fragment +0 -0
  39. pex/docs/html/_pagefind/fragment/en_e0b014e.pf_fragment +0 -0
  40. pex/docs/html/_pagefind/pagefind.en_4eb6e6f279.pf_meta +0 -0
  41. {pex-2.66.0.dist-info → pex-2.67.0.dist-info}/WHEEL +0 -0
  42. {pex-2.66.0.dist-info → pex-2.67.0.dist-info}/entry_points.txt +0 -0
  43. {pex-2.66.0.dist-info → pex-2.67.0.dist-info}/licenses/LICENSE +0 -0
  44. {pex-2.66.0.dist-info → pex-2.67.0.dist-info}/pylock/pylock.toml +0 -0
  45. {pex-2.66.0.dist-info → pex-2.67.0.dist-info}/top_level.txt +0 -0
@@ -1 +1 @@
1
- {"version":"1.3.0","languages":{"en":{"hash":"en_4eb6e6f279","wasm":"en","page_count":8}}}
1
+ {"version":"1.3.0","languages":{"en":{"hash":"en_849a96a3e6","wasm":"en","page_count":8}}}
@@ -1,5 +1,5 @@
1
1
  const DOCUMENTATION_OPTIONS = {
2
- VERSION: '2.66.0',
2
+ VERSION: '2.67.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.66.0)</title>
11
+ <title>PEX runtime environment variables - Pex Docs (v2.67.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.66.0)</div></a>
166
+ <a href="../index.html"><div class="brand">Pex Docs (v2.67.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.66.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">
646
+ <a class="muted-link " href="https://pypi.org/project/pex/2.67.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.66.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">
651
+ <a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.67.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=e44e05e7"></script>
674
+ </div><script src="../_static/documentation_options.js?v=959b4fbe"></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.66.0)</title>
11
+ <title>Building .pex files - Pex Docs (v2.67.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.66.0)</div></a>
166
+ <a href="index.html"><div class="brand">Pex Docs (v2.67.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.66.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">
684
+ <a class="muted-link " href="https://pypi.org/project/pex/2.67.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.66.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">
689
+ <a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.67.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=e44e05e7"></script>
712
+ </div><script src="_static/documentation_options.js?v=959b4fbe"></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.66.0)</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.67.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.66.0)</div></a>
164
+ <a href="index.html"><div class="brand">Pex Docs (v2.67.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.66.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">
263
+ <a class="muted-link " href="https://pypi.org/project/pex/2.67.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.66.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">
268
+ <a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.67.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=e44e05e7"></script>
291
+ </div><script src="_static/documentation_options.js?v=959b4fbe"></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.66.0)</title>
11
+ <title>Pex Docs (v2.67.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.66.0)</div></a>
166
+ <a href="#"><div class="brand">Pex Docs (v2.67.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.66.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">
344
+ <a class="muted-link " href="https://pypi.org/project/pex/2.67.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.66.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">
349
+ <a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.67.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=e44e05e7"></script>
392
+ </div><script src="_static/documentation_options.js?v=959b4fbe"></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.66.0)</title>
11
+ <title>PEX Recipes and Notes - Pex Docs (v2.67.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.66.0)</div></a>
166
+ <a href="index.html"><div class="brand">Pex Docs (v2.67.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.66.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">
433
+ <a class="muted-link " href="https://pypi.org/project/pex/2.67.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.66.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">
438
+ <a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.67.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=e44e05e7"></script>
485
+ </div><script src="_static/documentation_options.js?v=959b4fbe"></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.66.0)</title>
11
+ <title>PEX with included Python interpreter - Pex Docs (v2.67.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.66.0)</div></a>
166
+ <a href="index.html"><div class="brand">Pex Docs (v2.67.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.66.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">
626
+ <a class="muted-link " href="https://pypi.org/project/pex/2.67.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.66.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">
631
+ <a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.67.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=e44e05e7"></script>
675
+ </div><script src="_static/documentation_options.js?v=959b4fbe"></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.66.0)</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.67.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.66.0)</div></a>
179
+ <a href="index.html"><div class="brand">Pex Docs (v2.67.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.66.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">
276
+ <a class="muted-link " href="https://pypi.org/project/pex/2.67.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.66.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">
281
+ <a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.67.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=e44e05e7"></script>
304
+ </div><script src="_static/documentation_options.js?v=959b4fbe"></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>
@@ -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>What are .pex files? - Pex Docs (v2.66.0)</title>
11
+ <title>What are .pex files? - Pex Docs (v2.67.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.66.0)</div></a>
166
+ <a href="index.html"><div class="brand">Pex Docs (v2.67.0)</div></a>
167
167
  </div>
168
168
  <div class="header-right">
169
169
  <div class="theme-toggle-container theme-toggle-header">
@@ -322,12 +322,12 @@ build executable .pex files. This is described more thoroughly in
322
322
  </div>
323
323
  <div class="right-details">
324
324
  <div class="icons">
325
- <a class="muted-link " href="https://pypi.org/project/pex/2.66.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">
325
+ <a class="muted-link " href="https://pypi.org/project/pex/2.67.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">
326
326
  <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">
327
327
  </path>
328
328
  </svg>
329
329
  </a>
330
- <a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.66.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">
330
+ <a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.67.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">
331
331
  <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">
332
332
  </path>
333
333
  </svg>
@@ -371,7 +371,7 @@ build executable .pex files. This is described more thoroughly in
371
371
 
372
372
  </aside>
373
373
  </div>
374
- </div><script src="_static/documentation_options.js?v=e44e05e7"></script>
374
+ </div><script src="_static/documentation_options.js?v=959b4fbe"></script>
375
375
  <script src="_static/doctools.js?v=9bcbadda"></script>
376
376
  <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
377
377
  <script src="_static/scripts/furo.js?v=46bd48cc"></script>
pex/jobs.py CHANGED
@@ -724,6 +724,19 @@ def iter_map_parallel(
724
724
  if not input_items:
725
725
  return
726
726
 
727
+ # We want each of the job slots to process MULTIPROCESSING_DEFAULT_MIN_AVERAGE_LOAD on
728
+ # average in order to overcome multiprocessing overheads. If we don't need at least 2 slots, we
729
+ # are unlikely to get any boost from multiprocessing.
730
+ needed_slots = len(input_items) // min_average_load
731
+ if needed_slots < 2:
732
+ for item in input_items:
733
+ yield function(item)
734
+ return
735
+
736
+ # Of course, if there are fewer available cores than that or the user has pinned max jobs lower,
737
+ # we clamp to that.
738
+ pool_size = min(needed_slots, _sanitize_max_jobs(max_jobs))
739
+
727
740
  if costing_function is not None:
728
741
  # We ensure no job slot is so unlucky as to get all the biggest jobs and thus become an
729
742
  # un-necessarily long pole by sorting based on cost. Some examples to illustrate the effect
@@ -740,12 +753,6 @@ def iter_map_parallel(
740
753
  #
741
754
  input_items.sort(key=costing_function, reverse=True)
742
755
 
743
- # We want each of the job slots above to process MULTIPROCESSING_DEFAULT_MIN_AVERAGE_LOAD on
744
- # average in order to overcome multiprocessing overheads. Of course, if there are fewer
745
- # available cores than that or the user has pinned max jobs lower, we clamp to that. Finally, we
746
- # always want at least two slots to ensure we process input items in parallel.
747
- pool_size = max(2, min(len(input_items) // min_average_load, _sanitize_max_jobs(max_jobs)))
748
-
749
756
  apply_function = functools.partial(_apply_function, function)
750
757
 
751
758
  slots = defaultdict(list) # type: DefaultDict[int, List[float]]
@@ -20,7 +20,7 @@ from pex.resolve.resolver_configuration import (
20
20
  VenvRepositoryConfiguration,
21
21
  )
22
22
  from pex.resolve.resolvers import ResolveResult
23
- from pex.resolve.venv_resolver import resolve_from_venv
23
+ from pex.resolve.venv_resolver import resolve_from_venvs
24
24
  from pex.resolver import resolve as resolve_via_pip
25
25
  from pex.result import try_
26
26
  from pex.targets import Targets
@@ -143,14 +143,22 @@ def resolve(
143
143
  )
144
144
  elif isinstance(resolver_configuration, VenvRepositoryConfiguration):
145
145
  with TRACER.timed(
146
- "Resolving requirements from venv at {venv}.".format(
147
- venv=resolver_configuration.venv.venv_dir
146
+ "Resolving requirements from {count} {venvs} at:{paths}.".format(
147
+ count=len(resolver_configuration.venvs),
148
+ venvs=pluralize(resolver_configuration.venvs, "venv"),
149
+ paths=(
150
+ " {venv}".format(venv=resolver_configuration.venvs[0].venv_dir)
151
+ if len(resolver_configuration.venvs) == 1
152
+ else "\n {venvs}".format(
153
+ venvs="\n ".join(venv.venv_dir for venv in resolver_configuration.venvs)
154
+ )
155
+ ),
148
156
  )
149
157
  ):
150
158
  return try_(
151
- resolve_from_venv(
159
+ resolve_from_venvs(
152
160
  targets=targets,
153
- venv=resolver_configuration.venv,
161
+ venvs=resolver_configuration.venvs,
154
162
  requirement_configuration=requirement_configuration,
155
163
  pip_configuration=resolver_configuration.pip_configuration,
156
164
  compile=compile_pyc,
pex/resolve/locker.py CHANGED
@@ -30,6 +30,7 @@ from pex.resolve.pep_691.model import Endpoint
30
30
  from pex.resolve.resolved_requirement import PartialArtifact, Pin, ResolvedRequirement
31
31
  from pex.resolve.resolvers import Resolver
32
32
  from pex.resolve.target_system import UniversalTarget
33
+ from pex.result import try_
33
34
  from pex.targets import Target
34
35
  from pex.typing import TYPE_CHECKING
35
36
 
@@ -417,12 +418,14 @@ class Locker(LogAnalyzer):
417
418
  os.path.basename(artifact_url.path)
418
419
  ] = build_result.pin
419
420
  else:
420
- digest_local_project(
421
- directory=artifact_url.path,
422
- digest=digest,
423
- pip_version=self._pip_version,
424
- target=self._target,
425
- resolver=self._resolver,
421
+ try_(
422
+ digest_local_project(
423
+ directory=artifact_url.path,
424
+ digest=digest,
425
+ pip_version=self._pip_version,
426
+ target=self._target,
427
+ resolver=self._resolver,
428
+ )
426
429
  )
427
430
  self._local_projects.add(artifact_url.path)
428
431
  self._saved.add(build_result.pin)
@@ -490,12 +493,14 @@ class Locker(LogAnalyzer):
490
493
  os.path.basename(artifact_url.path)
491
494
  ] = build_result.pin
492
495
  else:
493
- digest_local_project(
494
- directory=artifact_url.path,
495
- digest=digest,
496
- pip_version=self._pip_version,
497
- target=self._target,
498
- resolver=self._resolver,
496
+ try_(
497
+ digest_local_project(
498
+ directory=artifact_url.path,
499
+ digest=digest,
500
+ pip_version=self._pip_version,
501
+ target=self._target,
502
+ resolver=self._resolver,
503
+ )
499
504
  )
500
505
  self._local_projects.add(artifact_url.path)
501
506
  self._saved.add(build_result.pin)
@@ -357,8 +357,6 @@ class LockObserver(ResolveObserver):
357
357
  target=local_distribution.download_target,
358
358
  source_path=local_distribution.path,
359
359
  subdirectory=local_distribution.subdirectory,
360
- resolver=self.resolver,
361
- pip_version=self.package_index_configuration.pip_version,
362
360
  )
363
361
  )
364
362
 
@@ -369,10 +367,7 @@ class LockObserver(ResolveObserver):
369
367
  lock_result = analysis.analyzer.lock_result
370
368
  build_requests.update(
371
369
  BuildRequest.for_directory(
372
- target=analysis.download_target,
373
- source_path=local_project,
374
- resolver=self.resolver,
375
- pip_version=self.package_index_configuration.pip_version,
370
+ target=analysis.download_target, source_path=local_project
376
371
  )
377
372
  for local_project in lock_result.local_projects
378
373
  )
@@ -101,19 +101,13 @@ def resolve_from_dists(
101
101
  extra_pip_requirements=pip_configuration.extra_requirements,
102
102
  keyring_provider=pip_configuration.keyring_provider,
103
103
  )
104
- resolver = ConfiguredResolver(pip_configuration=pip_configuration)
105
104
  build_requests = [
106
105
  BuildRequest.for_file(target=target, source_path=sdist)
107
106
  for sdist in sdists
108
107
  for target in unique_targets
109
108
  ]
110
109
  build_requests.extend(
111
- BuildRequest.for_directory(
112
- target=target,
113
- source_path=local_project.path,
114
- resolver=resolver,
115
- pip_version=pip_configuration.version,
116
- )
110
+ BuildRequest.for_directory(target=target, source_path=local_project.path)
117
111
  for local_project in local_projects
118
112
  for target in unique_targets
119
113
  )
@@ -251,7 +251,7 @@ class PreResolvedConfiguration(object):
251
251
 
252
252
  @attr.s(frozen=True)
253
253
  class VenvRepositoryConfiguration(object):
254
- venv = attr.ib() # type: Virtualenv
254
+ venvs = attr.ib() # type: Tuple[Virtualenv, ...]
255
255
  pip_configuration = attr.ib() # type: PipConfiguration
256
256
 
257
257
  @property