pex 2.65.0__py2.py3-none-any.whl → 2.66.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.
- pex/docs/html/_pagefind/fragment/en_1caf19d.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_2268ed8.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/{en_eb89be5.pf_fragment → en_469c87d.pf_fragment} +0 -0
- pex/docs/html/_pagefind/fragment/en_4a75d8d.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_9fe4bcc.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/{en_d450b85.pf_fragment → en_a951443.pf_fragment} +0 -0
- pex/docs/html/_pagefind/fragment/en_af1fb65.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_e0b014e.pf_fragment +0 -0
- pex/docs/html/_pagefind/index/{en_71e2485.pf_index → en_f48c2e4.pf_index} +0 -0
- pex/docs/html/_pagefind/pagefind-entry.json +1 -1
- pex/docs/html/_pagefind/pagefind.en_4eb6e6f279.pf_meta +0 -0
- pex/docs/html/_static/documentation_options.js +1 -1
- pex/docs/html/api/vars.html +5 -5
- pex/docs/html/buildingpex.html +5 -5
- pex/docs/html/genindex.html +5 -5
- pex/docs/html/index.html +5 -5
- pex/docs/html/recipes.html +5 -5
- pex/docs/html/scie.html +5 -5
- pex/docs/html/search.html +5 -5
- pex/docs/html/whatispex.html +5 -5
- pex/hashing.py +71 -9
- pex/pex_builder.py +1 -4
- pex/pip/tool.py +3 -3
- pex/pip/vcs.py +93 -44
- pex/pip/version.py +7 -0
- pex/resolve/lock_downloader.py +1 -0
- pex/resolve/locker.py +13 -2
- pex/version.py +1 -1
- {pex-2.65.0.dist-info → pex-2.66.0.dist-info}/METADATA +4 -4
- {pex-2.65.0.dist-info → pex-2.66.0.dist-info}/RECORD +35 -35
- pex/docs/html/_pagefind/fragment/en_111cec6.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_57535ac.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_68579f8.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_b915203.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_ff882aa.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_ffc2e0e.pf_fragment +0 -0
- pex/docs/html/_pagefind/pagefind.en_f11d4148c9.pf_meta +0 -0
- {pex-2.65.0.dist-info → pex-2.66.0.dist-info}/WHEEL +0 -0
- {pex-2.65.0.dist-info → pex-2.66.0.dist-info}/entry_points.txt +0 -0
- {pex-2.65.0.dist-info → pex-2.66.0.dist-info}/licenses/LICENSE +0 -0
- {pex-2.65.0.dist-info → pex-2.66.0.dist-info}/pylock/pylock.toml +0 -0
- {pex-2.65.0.dist-info → pex-2.66.0.dist-info}/top_level.txt +0 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"1.3.0","languages":{"en":{"hash":"
|
|
1
|
+
{"version":"1.3.0","languages":{"en":{"hash":"en_4eb6e6f279","wasm":"en","page_count":8}}}
|
|
Binary file
|
pex/docs/html/api/vars.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 runtime environment variables - Pex Docs (v2.
|
|
11
|
+
<title>PEX runtime environment variables - Pex Docs (v2.66.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.
|
|
166
|
+
<a href="../index.html"><div class="brand">Pex Docs (v2.66.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.
|
|
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">
|
|
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.
|
|
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">
|
|
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=
|
|
674
|
+
</div><script src="../_static/documentation_options.js?v=e44e05e7"></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>
|
pex/docs/html/buildingpex.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>Building .pex files - Pex Docs (v2.
|
|
11
|
+
<title>Building .pex files - Pex Docs (v2.66.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.
|
|
166
|
+
<a href="index.html"><div class="brand">Pex Docs (v2.66.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.
|
|
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">
|
|
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.
|
|
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">
|
|
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=
|
|
712
|
+
</div><script src="_static/documentation_options.js?v=e44e05e7"></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>
|
pex/docs/html/genindex.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>Index - Pex Docs (v2.
|
|
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>
|
|
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.
|
|
164
|
+
<a href="index.html"><div class="brand">Pex Docs (v2.66.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.
|
|
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">
|
|
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.
|
|
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">
|
|
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=
|
|
291
|
+
</div><script src="_static/documentation_options.js?v=e44e05e7"></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.
|
|
11
|
+
<title>Pex Docs (v2.66.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.
|
|
166
|
+
<a href="#"><div class="brand">Pex Docs (v2.66.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.
|
|
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">
|
|
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.
|
|
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">
|
|
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=
|
|
392
|
+
</div><script src="_static/documentation_options.js?v=e44e05e7"></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>
|
pex/docs/html/recipes.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 Recipes and Notes - Pex Docs (v2.
|
|
11
|
+
<title>PEX Recipes and Notes - Pex Docs (v2.66.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.
|
|
166
|
+
<a href="index.html"><div class="brand">Pex Docs (v2.66.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.
|
|
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">
|
|
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.
|
|
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">
|
|
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=
|
|
485
|
+
</div><script src="_static/documentation_options.js?v=e44e05e7"></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.
|
|
11
|
+
<title>PEX with included Python interpreter - Pex Docs (v2.66.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.
|
|
166
|
+
<a href="index.html"><div class="brand">Pex Docs (v2.66.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.
|
|
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">
|
|
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.
|
|
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">
|
|
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=
|
|
675
|
+
</div><script src="_static/documentation_options.js?v=e44e05e7"></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.
|
|
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" />
|
|
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.
|
|
179
|
+
<a href="index.html"><div class="brand">Pex Docs (v2.66.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.
|
|
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">
|
|
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.
|
|
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">
|
|
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=
|
|
304
|
+
</div><script src="_static/documentation_options.js?v=e44e05e7"></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>
|
pex/docs/html/whatispex.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>What are .pex files? - Pex Docs (v2.
|
|
11
|
+
<title>What are .pex files? - Pex Docs (v2.66.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.
|
|
166
|
+
<a href="index.html"><div class="brand">Pex Docs (v2.66.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.
|
|
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">
|
|
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.
|
|
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">
|
|
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=
|
|
374
|
+
</div><script src="_static/documentation_options.js?v=e44e05e7"></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/hashing.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Copyright 2022 Pex project contributors.
|
|
2
2
|
# Licensed under the Apache License, Version 2.0 (see LICENSE).
|
|
3
3
|
|
|
4
|
-
from __future__ import absolute_import
|
|
4
|
+
from __future__ import absolute_import, print_function
|
|
5
5
|
|
|
6
6
|
import hashlib
|
|
7
7
|
import os
|
|
@@ -241,10 +241,12 @@ def dir_hash(
|
|
|
241
241
|
def iter_files():
|
|
242
242
|
# type: () -> Iterator[Text]
|
|
243
243
|
for root, dirs, files in os.walk(top, followlinks=True):
|
|
244
|
-
dirs[:] = [
|
|
244
|
+
dirs[:] = [
|
|
245
|
+
d for d in dirs if dir_filter(os.path.relpath(os.path.join(root, d), top))
|
|
246
|
+
]
|
|
245
247
|
for f in files:
|
|
246
248
|
path = os.path.join(root, f)
|
|
247
|
-
if file_filter(path):
|
|
249
|
+
if file_filter(os.path.relpath(path, top)):
|
|
248
250
|
yield path
|
|
249
251
|
|
|
250
252
|
file_paths = sorted(iter_files())
|
|
@@ -278,16 +280,26 @@ def zip_hash(
|
|
|
278
280
|
else zf.namelist()
|
|
279
281
|
)
|
|
280
282
|
|
|
281
|
-
dirs =
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
283
|
+
dirs = set()
|
|
284
|
+
for name in namelist:
|
|
285
|
+
if name.endswith("/"):
|
|
286
|
+
dirname = name.rstrip("/")
|
|
287
|
+
else:
|
|
288
|
+
dirname = os.path.dirname(name)
|
|
289
|
+
while dirname:
|
|
290
|
+
dirs.add(dirname)
|
|
291
|
+
dirname = os.path.dirname(dirname)
|
|
292
|
+
|
|
293
|
+
accept_dirs = frozenset(
|
|
294
|
+
d for d in dirs if dir_filter(os.path.relpath(d, relpath) if relpath else d)
|
|
295
|
+
)
|
|
296
|
+
reject_dirs = tuple("{dir}/".format(dir=path) for path in (dirs - accept_dirs))
|
|
285
297
|
accept_files = sorted(
|
|
286
298
|
name
|
|
287
299
|
for name in namelist
|
|
288
300
|
if not name.endswith("/")
|
|
289
|
-
and not
|
|
290
|
-
and file_filter(os.path.
|
|
301
|
+
and not name.startswith(reject_dirs)
|
|
302
|
+
and file_filter(os.path.relpath(name, relpath) if relpath else name)
|
|
291
303
|
)
|
|
292
304
|
|
|
293
305
|
hashed_names = (
|
|
@@ -297,3 +309,53 @@ def zip_hash(
|
|
|
297
309
|
|
|
298
310
|
for filename in accept_files:
|
|
299
311
|
update_hash(zf.open(filename, "r"), digest)
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
if __name__ == "__main__":
|
|
315
|
+
import sys
|
|
316
|
+
import zipfile
|
|
317
|
+
from argparse import ArgumentParser
|
|
318
|
+
|
|
319
|
+
from pex.common import is_pyc_dir, is_pyc_file
|
|
320
|
+
|
|
321
|
+
parser = ArgumentParser()
|
|
322
|
+
parser.add_argument(
|
|
323
|
+
"--exclude-dir",
|
|
324
|
+
dest="exclude_dirs",
|
|
325
|
+
action="append",
|
|
326
|
+
default=[],
|
|
327
|
+
)
|
|
328
|
+
parser.add_argument("--zip-relpath")
|
|
329
|
+
parser.add_argument("paths", nargs="+")
|
|
330
|
+
|
|
331
|
+
options = parser.parse_args()
|
|
332
|
+
exclude_dirs = frozenset(options.exclude_dirs)
|
|
333
|
+
|
|
334
|
+
for path in options.paths:
|
|
335
|
+
digest = Sha256()
|
|
336
|
+
if zipfile.is_zipfile(path):
|
|
337
|
+
zip_hash(
|
|
338
|
+
path,
|
|
339
|
+
digest=digest,
|
|
340
|
+
relpath=options.zip_relpath,
|
|
341
|
+
dir_filter=(
|
|
342
|
+
lambda dir_path: (
|
|
343
|
+
not is_pyc_dir(dir_path) and os.path.basename(dir_path) not in exclude_dirs
|
|
344
|
+
)
|
|
345
|
+
),
|
|
346
|
+
file_filter=lambda f: not is_pyc_file(f),
|
|
347
|
+
)
|
|
348
|
+
elif os.path.isdir(path):
|
|
349
|
+
dir_hash(
|
|
350
|
+
path,
|
|
351
|
+
digest=digest,
|
|
352
|
+
dir_filter=(
|
|
353
|
+
lambda dir_path: (
|
|
354
|
+
not is_pyc_dir(dir_path) and os.path.basename(dir_path) not in exclude_dirs
|
|
355
|
+
)
|
|
356
|
+
),
|
|
357
|
+
file_filter=lambda f: not is_pyc_file(f),
|
|
358
|
+
)
|
|
359
|
+
else:
|
|
360
|
+
print("Can only hash zip files or directories. Skipping file", path, file=sys.stderr)
|
|
361
|
+
print(path, digest.hexdigest(), file=sys.stdout)
|
pex/pex_builder.py
CHANGED
|
@@ -470,10 +470,7 @@ class PEXBuilder(object):
|
|
|
470
470
|
def _prepare_code(self):
|
|
471
471
|
chroot_path = self._chroot.path()
|
|
472
472
|
self._pex_info.code_hash = CacheHelper.pex_code_hash(
|
|
473
|
-
chroot_path,
|
|
474
|
-
exclude_dirs=tuple(
|
|
475
|
-
os.path.join(chroot_path, d) for d in (layout.BOOTSTRAP_DIR, layout.DEPS_DIR)
|
|
476
|
-
),
|
|
473
|
+
chroot_path, exclude_dirs=(layout.BOOTSTRAP_DIR, layout.DEPS_DIR)
|
|
477
474
|
)
|
|
478
475
|
self._pex_info.pex_hash = hashlib.sha1(self._pex_info.dump().encode("utf-8")).hexdigest()
|
|
479
476
|
self._chroot.write(self._pex_info.dump().encode("utf-8"), PexInfo.PATH, label="manifest")
|
pex/pip/tool.py
CHANGED
|
@@ -552,8 +552,7 @@ class Pip(object):
|
|
|
552
552
|
)
|
|
553
553
|
return Job(command=command, process=process, finalizer=finalizer, context="pip")
|
|
554
554
|
|
|
555
|
-
|
|
556
|
-
def _iter_build_configuration_options(build_configuration):
|
|
555
|
+
def _iter_build_configuration_options(self, build_configuration):
|
|
557
556
|
# type: (BuildConfiguration) -> Iterator[str]
|
|
558
557
|
|
|
559
558
|
# N.B.: BuildConfiguration maintains invariants that ensure --only-binary, --no-binary,
|
|
@@ -576,7 +575,8 @@ class Pip(object):
|
|
|
576
575
|
if build_configuration.prefer_older_binary:
|
|
577
576
|
yield "--prefer-binary"
|
|
578
577
|
|
|
579
|
-
|
|
578
|
+
# N.B.: In 25.3 `--use-pep517` became the default and only option.
|
|
579
|
+
if build_configuration.use_pep517 is not None and self.version < PipVersion.v25_3:
|
|
580
580
|
yield "--use-pep517" if build_configuration.use_pep517 else "--no-use-pep517"
|
|
581
581
|
|
|
582
582
|
if not build_configuration.build_isolation:
|
pex/pip/vcs.py
CHANGED
|
@@ -3,26 +3,42 @@
|
|
|
3
3
|
|
|
4
4
|
from __future__ import absolute_import
|
|
5
5
|
|
|
6
|
-
import glob
|
|
7
6
|
import os
|
|
8
7
|
import re
|
|
9
8
|
|
|
10
9
|
from pex import hashing
|
|
11
10
|
from pex.artifact_url import VCS, Fingerprint
|
|
12
|
-
from pex.common import is_pyc_dir, is_pyc_file
|
|
11
|
+
from pex.common import is_pyc_dir, is_pyc_file
|
|
12
|
+
from pex.exceptions import reportable_unexpected_error_msg
|
|
13
13
|
from pex.hashing import Sha256
|
|
14
14
|
from pex.pep_440 import Version
|
|
15
15
|
from pex.pep_503 import ProjectName
|
|
16
16
|
from pex.result import Error, try_
|
|
17
|
-
from pex.tracer import TRACER
|
|
18
17
|
from pex.typing import TYPE_CHECKING
|
|
19
18
|
|
|
20
19
|
if TYPE_CHECKING:
|
|
21
|
-
|
|
20
|
+
# N.B.: The `re.Pattern` type is not available in all Python versions Pex supports.
|
|
21
|
+
from re import Pattern # type: ignore[attr-defined]
|
|
22
|
+
from typing import Callable, Optional, Text, Tuple, Union
|
|
22
23
|
|
|
23
24
|
from pex.hashing import HintedDigest
|
|
24
25
|
|
|
25
26
|
|
|
27
|
+
def _project_name_re(project_name):
|
|
28
|
+
# type: (ProjectName) -> str
|
|
29
|
+
return project_name.normalized.replace("-", "[-_.]+")
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def _built_source_dist_pattern(project_name):
|
|
33
|
+
# type: (ProjectName) -> Pattern
|
|
34
|
+
return re.compile(
|
|
35
|
+
r"(?P<project_name>{project_name_re})-(?P<version>.+)\.zip".format(
|
|
36
|
+
project_name_re=_project_name_re(project_name)
|
|
37
|
+
),
|
|
38
|
+
re.IGNORECASE,
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
|
|
26
42
|
def _find_built_source_dist(
|
|
27
43
|
build_dir, # type: str
|
|
28
44
|
project_name, # type: ProjectName
|
|
@@ -34,12 +50,7 @@ def _find_built_source_dist(
|
|
|
34
50
|
# encoded in: `pip._internal.req.req_install.InstallRequirement.archive`.
|
|
35
51
|
|
|
36
52
|
listing = os.listdir(build_dir)
|
|
37
|
-
pattern =
|
|
38
|
-
r"{project_name}-(?P<version>.+)\.zip".format(
|
|
39
|
-
project_name=project_name.normalized.replace("-", "[-_.]+")
|
|
40
|
-
),
|
|
41
|
-
re.IGNORECASE,
|
|
42
|
-
)
|
|
53
|
+
pattern = _built_source_dist_pattern(project_name)
|
|
43
54
|
for name in listing:
|
|
44
55
|
match = pattern.match(name)
|
|
45
56
|
if match and Version(match.group("version")) == version:
|
|
@@ -58,23 +69,66 @@ def _find_built_source_dist(
|
|
|
58
69
|
|
|
59
70
|
def fingerprint_downloaded_vcs_archive(
|
|
60
71
|
download_dir, # type: str
|
|
61
|
-
project_name, # type:
|
|
62
|
-
version, # type:
|
|
72
|
+
project_name, # type: ProjectName
|
|
73
|
+
version, # type: Version
|
|
63
74
|
vcs, # type: VCS.Value
|
|
64
75
|
):
|
|
65
76
|
# type: (...) -> Tuple[Fingerprint, str]
|
|
66
77
|
|
|
67
78
|
archive_path = try_(
|
|
68
|
-
_find_built_source_dist(
|
|
69
|
-
build_dir=download_dir, project_name=ProjectName(project_name), version=Version(version)
|
|
70
|
-
)
|
|
79
|
+
_find_built_source_dist(build_dir=download_dir, project_name=project_name, version=version)
|
|
71
80
|
)
|
|
72
81
|
digest = Sha256()
|
|
73
|
-
digest_vcs_archive(archive_path=archive_path, vcs=vcs, digest=digest)
|
|
82
|
+
digest_vcs_archive(project_name=project_name, archive_path=archive_path, vcs=vcs, digest=digest)
|
|
74
83
|
return Fingerprint.from_digest(digest), archive_path
|
|
75
84
|
|
|
76
85
|
|
|
86
|
+
def _vcs_dir_filter(
|
|
87
|
+
vcs, # type: VCS.Value
|
|
88
|
+
project_name, # type: ProjectName
|
|
89
|
+
):
|
|
90
|
+
# type: (...) -> Callable[[Text], bool]
|
|
91
|
+
|
|
92
|
+
# Ignore VCS control directories for the purposes of fingerprinting the version controlled
|
|
93
|
+
# source tree. VCS control directories can contain non-reproducible content (Git at least
|
|
94
|
+
# has files that contain timestamps).
|
|
95
|
+
#
|
|
96
|
+
# We cannot prune these directories from the source archive directly unfortunately since
|
|
97
|
+
# some build processes use VCS version information to derive their version numbers (C.F.:
|
|
98
|
+
# https://pypi.org/project/setuptools-scm/). As such, we'll get a stable fingerprint, but be
|
|
99
|
+
# forced to re-build a wheel each time the VCS requirement is re-locked later, even when it
|
|
100
|
+
# hashes the same.
|
|
101
|
+
vcs_control_dir = ".{vcs}".format(vcs=vcs)
|
|
102
|
+
|
|
103
|
+
# N.B.: If the VCS project uses setuptools as its build backend, depending on the version of
|
|
104
|
+
# Pip used, the VCS checkout can have a `<project name>.egg-info/` directory littering its root
|
|
105
|
+
# left over from Pip generating project metadata to determine version and dependencies. No other
|
|
106
|
+
# well known build-backend has this problem at this time (checked hatchling, poetry-core,
|
|
107
|
+
# pdm-backend and uv_build).
|
|
108
|
+
# C.F.: https://github.com/pypa/pip/pull/13602
|
|
109
|
+
egg_info_dir_re = re.compile(
|
|
110
|
+
r"^{project_name_re}\.egg-info$".format(project_name_re=_project_name_re(project_name)),
|
|
111
|
+
re.IGNORECASE,
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
def vcs_dir_filter(dir_path):
|
|
115
|
+
# type: (Text) -> bool
|
|
116
|
+
if is_pyc_dir(dir_path):
|
|
117
|
+
return False
|
|
118
|
+
|
|
119
|
+
base_dir_name = dir_path.split(os.sep)[0]
|
|
120
|
+
return base_dir_name != vcs_control_dir and not egg_info_dir_re.match(base_dir_name)
|
|
121
|
+
|
|
122
|
+
return vcs_dir_filter
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
def _vcs_file_filter(vcs):
|
|
126
|
+
# type: (VCS.Value) -> Callable[[Text], bool]
|
|
127
|
+
return lambda f: not is_pyc_file(f)
|
|
128
|
+
|
|
129
|
+
|
|
77
130
|
def digest_vcs_archive(
|
|
131
|
+
project_name, # type: ProjectName
|
|
78
132
|
archive_path, # type: str
|
|
79
133
|
vcs, # type: VCS.Value
|
|
80
134
|
digest, # type: HintedDigest
|
|
@@ -84,22 +138,32 @@ def digest_vcs_archive(
|
|
|
84
138
|
# All VCS requirements are prepared as zip archives as encoded in:
|
|
85
139
|
# `pip._internal.req.req_install.InstallRequirement.archive` and the archive is already offset
|
|
86
140
|
# by a subdirectory (if any).
|
|
87
|
-
with TRACER.timed(
|
|
88
|
-
"Digesting {archive} {vcs} archive".format(archive=os.path.basename(archive_path), vcs=vcs)
|
|
89
|
-
), temporary_dir() as chroot, open_zip(archive_path) as archive:
|
|
90
|
-
# TODO(John Sirois): Consider implementing zip_hash to avoid the extractall.
|
|
91
|
-
archive.extractall(chroot)
|
|
92
141
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
142
|
+
# The zip archives created by Pip have a single project name top-level directory housing
|
|
143
|
+
# the full clone. We look for that to get a consistent clone hash with a bare clone.
|
|
144
|
+
match = _built_source_dist_pattern(project_name).match(os.path.basename(archive_path))
|
|
145
|
+
if match is None:
|
|
146
|
+
raise AssertionError(
|
|
147
|
+
reportable_unexpected_error_msg(
|
|
148
|
+
"Failed to determine the project name prefix for the VCS zip {zip} with expected "
|
|
149
|
+
"canonical project name {project_name}".format(
|
|
150
|
+
zip=archive_path, project_name=project_name
|
|
151
|
+
)
|
|
152
|
+
)
|
|
153
|
+
)
|
|
154
|
+
top_dir = match.group("project_name")
|
|
98
155
|
|
|
99
|
-
|
|
156
|
+
hashing.zip_hash(
|
|
157
|
+
zip_path=archive_path,
|
|
158
|
+
digest=digest,
|
|
159
|
+
relpath=top_dir,
|
|
160
|
+
dir_filter=_vcs_dir_filter(vcs, project_name),
|
|
161
|
+
file_filter=_vcs_file_filter(vcs),
|
|
162
|
+
)
|
|
100
163
|
|
|
101
164
|
|
|
102
165
|
def digest_vcs_repo(
|
|
166
|
+
project_name, # type: ProjectName
|
|
103
167
|
repo_path, # type: str
|
|
104
168
|
vcs, # type: VCS.Value
|
|
105
169
|
digest, # type: HintedDigest
|
|
@@ -107,24 +171,9 @@ def digest_vcs_repo(
|
|
|
107
171
|
):
|
|
108
172
|
# type: (...) -> None
|
|
109
173
|
|
|
110
|
-
# Ignore VCS control directories for the purposes of fingerprinting the version controlled
|
|
111
|
-
# source tree. VCS control directories can contain non-reproducible content (Git at least
|
|
112
|
-
# has files that contain timestamps).
|
|
113
|
-
#
|
|
114
|
-
# We cannot prune these directories from the source archive directly unfortunately since
|
|
115
|
-
# some build processes use VCS version information to derive their version numbers (C.F.:
|
|
116
|
-
# https://pypi.org/project/setuptools-scm/). As such, we'll get a stable fingerprint, but be
|
|
117
|
-
# forced to re-build a wheel each time the VCS requirement is re-locked later, even when it
|
|
118
|
-
# hashes the same.
|
|
119
|
-
vcs_control_dir = ".{vcs}".format(vcs=vcs)
|
|
120
|
-
|
|
121
174
|
hashing.dir_hash(
|
|
122
175
|
directory=os.path.join(repo_path, subdirectory) if subdirectory else repo_path,
|
|
123
176
|
digest=digest,
|
|
124
|
-
dir_filter=(
|
|
125
|
-
|
|
126
|
-
not is_pyc_dir(dir_path) and os.path.basename(dir_path) != vcs_control_dir
|
|
127
|
-
)
|
|
128
|
-
),
|
|
129
|
-
file_filter=lambda f: not is_pyc_file(f),
|
|
177
|
+
dir_filter=_vcs_dir_filter(vcs, project_name),
|
|
178
|
+
file_filter=_vcs_file_filter(vcs),
|
|
130
179
|
)
|
pex/pip/version.py
CHANGED
|
@@ -369,6 +369,13 @@ class PipVersion(Enum["PipVersionValue"]):
|
|
|
369
369
|
requires_python=">=3.9,<3.16",
|
|
370
370
|
)
|
|
371
371
|
|
|
372
|
+
v25_3 = PipVersionValue(
|
|
373
|
+
version="25.3",
|
|
374
|
+
setuptools_version="80.9.0",
|
|
375
|
+
wheel_version="0.45.1",
|
|
376
|
+
requires_python=">=3.9,<3.16",
|
|
377
|
+
)
|
|
378
|
+
|
|
372
379
|
VENDORED = v20_3_4_patched
|
|
373
380
|
LATEST = LatestPipVersion()
|
|
374
381
|
LATEST_COMPATIBLE = LatestCompatiblePipVersion()
|
pex/resolve/lock_downloader.py
CHANGED
|
@@ -154,6 +154,7 @@ class VCSArtifactDownloadManager(DownloadManager[VCSArtifact]):
|
|
|
154
154
|
local_distribution = downloaded_vcs.local_distributions[0]
|
|
155
155
|
filename = os.path.basename(local_distribution.path)
|
|
156
156
|
digest_vcs_archive(
|
|
157
|
+
project_name=project_name,
|
|
157
158
|
archive_path=local_distribution.path,
|
|
158
159
|
vcs=artifact.vcs,
|
|
159
160
|
digest=digest,
|
pex/resolve/locker.py
CHANGED
|
@@ -291,6 +291,16 @@ class Locker(LogAnalyzer):
|
|
|
291
291
|
def _maybe_record_wheel(self, url):
|
|
292
292
|
# type: (str) -> ArtifactURL
|
|
293
293
|
artifact_url = self.parse_url_and_maybe_record_fingerprint(url)
|
|
294
|
+
|
|
295
|
+
# N.B.: Lock resolves driven by `pip install --dry-run --report` will only consult PEP-658
|
|
296
|
+
# `.whl.metadata` side-car files in the happy path; so we must use these as a proxy for the
|
|
297
|
+
# `.whl` file they are paired with.
|
|
298
|
+
# See: https://peps.python.org/pep-0658/
|
|
299
|
+
if not self._lock_is_via_pip_download and artifact_url.url_info.path.endswith(".metadata"):
|
|
300
|
+
artifact_url = ArtifactURL.from_url_info(
|
|
301
|
+
artifact_url.url_info._replace(path=artifact_url.url_info.path[:-9])
|
|
302
|
+
)
|
|
303
|
+
|
|
294
304
|
if artifact_url.is_wheel:
|
|
295
305
|
pin, partial_artifact = self._extract_resolve_data(artifact_url)
|
|
296
306
|
|
|
@@ -371,8 +381,8 @@ class Locker(LogAnalyzer):
|
|
|
371
381
|
if isinstance(artifact_url.scheme, VCSScheme):
|
|
372
382
|
source_fingerprint, archive_path = fingerprint_downloaded_vcs_archive(
|
|
373
383
|
download_dir=self._download_dir,
|
|
374
|
-
project_name=
|
|
375
|
-
version=
|
|
384
|
+
project_name=build_result.pin.project_name,
|
|
385
|
+
version=build_result.pin.version,
|
|
376
386
|
vcs=artifact_url.scheme.vcs,
|
|
377
387
|
)
|
|
378
388
|
verified = True
|
|
@@ -445,6 +455,7 @@ class Locker(LogAnalyzer):
|
|
|
445
455
|
if isinstance(artifact_url.scheme, VCSScheme):
|
|
446
456
|
digest = Sha256()
|
|
447
457
|
digest_vcs_repo(
|
|
458
|
+
project_name=build_result.pin.project_name,
|
|
448
459
|
repo_path=build_result.path,
|
|
449
460
|
vcs=artifact_url.scheme.vcs,
|
|
450
461
|
digest=digest,
|
pex/version.py
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pex
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.66.0
|
|
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.
|
|
6
|
+
Download-URL: https://github.com/pex-tool/pex/releases/download/v2.66.0/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.
|
|
10
|
+
Project-URL: Changelog, https://github.com/pex-tool/pex/blob/v2.66.0/CHANGES.md
|
|
11
11
|
Project-URL: Documentation, https://docs.pex-tool.org/
|
|
12
|
-
Project-URL: Source, https://github.com/pex-tool/pex/tree/v2.
|
|
12
|
+
Project-URL: Source, https://github.com/pex-tool/pex/tree/v2.66.0
|
|
13
13
|
Keywords: package,executable,virtualenv,lock,freeze
|
|
14
14
|
Classifier: Development Status :: 5 - Production/Stable
|
|
15
15
|
Classifier: Intended Audience :: Developers
|
|
@@ -24,7 +24,7 @@ pex/fetcher.py,sha256=k6wIRU3aX478ExoNdRVd7miC_D-Ftw8s6WUHw50MKvY,14408
|
|
|
24
24
|
pex/finders.py,sha256=hmsrBoKmejx1ABPeCHhAtFk0lXhGV3WYGjhrjFufTKY,5109
|
|
25
25
|
pex/fingerprinted_distribution.py,sha256=0NB-Q-lOZV1QLfyrTDUN8KeezNgDGODFOLuolAAWJFM,752
|
|
26
26
|
pex/globals.py,sha256=9LnuOG1hu4azLd_auaUw2g_zS5m1KumEds7hh9lmdis,231
|
|
27
|
-
pex/hashing.py,sha256=
|
|
27
|
+
pex/hashing.py,sha256=BOXMbmU9Abbwzx2pMzyN2rP8muVe4HV8MeCbTLSEOiQ,10536
|
|
28
28
|
pex/hashing.py.lck,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
29
29
|
pex/inherit_path.py,sha256=NyEC7OxIQp3lwtZJAU3DxEGtJHM9GcKDkaaUmqZrJTU,1004
|
|
30
30
|
pex/installed_wheel.py,sha256=zPBq4AuXh4TsrtNU86bs1s3zc44YHckJp94y9oHZ_GE,5270
|
|
@@ -47,7 +47,7 @@ pex/pep_723.py,sha256=1mvpMxYRf6Sxte0aI_aAkStdYPSov0rF_NVCMjY1YJs,11740
|
|
|
47
47
|
pex/pex.py,sha256=lBa8xgf77FbUzBRViannbtw8wnCajIOWOw9k961x6HE,33955
|
|
48
48
|
pex/pex_boot.py,sha256=GKxNP3c9ntoBP7r78ms38RKhEugdOkVKWlIA8K9_bDk,8187
|
|
49
49
|
pex/pex_bootstrapper.py,sha256=8a8Tk0JAcek-XeoejyZZwQUuT4FYrwrmVEYuoYBWAxY,32002
|
|
50
|
-
pex/pex_builder.py,sha256=
|
|
50
|
+
pex/pex_builder.py,sha256=itEEY5BukJAvcTrxHM7oo3Fo8r_xmr7ehYLQp1RAVSw,34065
|
|
51
51
|
pex/pex_info.py,sha256=YQjwZu1uPnCpCVO8oXHvKO-Aa_Rqz_NokelZR2tVe2A,22588
|
|
52
52
|
pex/pex_root.py,sha256=wk5C_mmgRej_vHpSn1lDVehM5yEq3E6tY2s2ZkgoB1Y,2196
|
|
53
53
|
pex/pex_warnings.py,sha256=lxPhCx_3mdUcrGBuH6f-K49mZ10IDrNOrpvpbC1NFTA,1113
|
|
@@ -69,7 +69,7 @@ pex/tracer.py,sha256=nob_hNooCYWZev7_ABhAVyO4HBZ8Q_OajQUvNnr82Rc,4481
|
|
|
69
69
|
pex/typing.py,sha256=J1JTB1V48zIWmhWRHEMDHWMaFPMzsEonWJ9s57Ev43Q,3050
|
|
70
70
|
pex/util.py,sha256=TxTxpdDmrDTLVXt9e2XuRq9c3N6jRYNCce87QBFkCVo,5491
|
|
71
71
|
pex/variables.py,sha256=h3-JeMzXfRzEsWqTYsoU-6vt5W4Kr0VvbfSDAYtuZOU,34728
|
|
72
|
-
pex/version.py,sha256=
|
|
72
|
+
pex/version.py,sha256=JU9e5XKAuFUgDTFOC8wwIQkE3nkk3WfWepG33HUlCdE,131
|
|
73
73
|
pex/wheel.py,sha256=R9jPWwzla_c3xUbeYjaQMrKC0ly8UexKMLfuRDhP054,11146
|
|
74
74
|
pex/whl.py,sha256=0Nh1d6kmAaRANCygoVZZi0zii6j_elRQc7N6yDHTuMY,2513
|
|
75
75
|
pex/ziputils.py,sha256=thUrto9vEdG9mFCIJ59Js3d1y6bSfFdl7pb1lSb7KAQ,9620
|
|
@@ -113,33 +113,33 @@ pex/distutils/commands/__init__.py,sha256=uASB5OU996Jax-h3kMmeZjG5Jdy9BYDR6A1swk
|
|
|
113
113
|
pex/distutils/commands/bdist_pex.py,sha256=SLwBj0ALpArhKQT94X0niKWfyLaySjOZuZrGXG332K0,5117
|
|
114
114
|
pex/docs/__init__.py,sha256=u9hPOij1fpo1yPBLTQTdSCnSIUuRCSXHomCkEAaCciA,439
|
|
115
115
|
pex/docs/command.py,sha256=uQyD8bO_DBNIlkPd6F7SFZbZUVh1Xn6gT8OmVxP4qxk,3046
|
|
116
|
-
pex/docs/html/buildingpex.html,sha256=
|
|
117
|
-
pex/docs/html/genindex.html,sha256=
|
|
118
|
-
pex/docs/html/index.html,sha256=
|
|
119
|
-
pex/docs/html/recipes.html,sha256=
|
|
120
|
-
pex/docs/html/scie.html,sha256=
|
|
121
|
-
pex/docs/html/search.html,sha256=
|
|
116
|
+
pex/docs/html/buildingpex.html,sha256=ynKT2arr5JmjBoz9tpAG3DjP4DvC2Q1jaReHr7Lq8bs,57407
|
|
117
|
+
pex/docs/html/genindex.html,sha256=knmLTMNEboqxQ4ifvtYUfk6WMVYFAOQDoRucHxwaZCM,17198
|
|
118
|
+
pex/docs/html/index.html,sha256=DFrqPPomteY78CfoTAm0cUopDhP1uN4DAGi601ydlc8,25028
|
|
119
|
+
pex/docs/html/recipes.html,sha256=SsDMMEgltfwb-O3u0bA7F84G3RtAhf95_ffFsWAbJHc,35192
|
|
120
|
+
pex/docs/html/scie.html,sha256=qQaFpVJF1pta8e7kqruDIyarJL4u16rS0xfeW3dKga0,62182
|
|
121
|
+
pex/docs/html/search.html,sha256=Zakl6pGBNidDqcyyG_waBFL3t45cilvBD6DDerU8uvo,18169
|
|
122
122
|
pex/docs/html/searchindex.js,sha256=R_L6Oveik_wlK5CmaE7YwRvmu81r6fd7jtnZUjfk1sA,18009
|
|
123
|
-
pex/docs/html/whatispex.html,sha256=
|
|
124
|
-
pex/docs/html/_pagefind/pagefind-entry.json,sha256=
|
|
123
|
+
pex/docs/html/whatispex.html,sha256=FrCSfUwAjfEJa77DGOSGFY51zemyhpmzpNkKySsm9mk,22754
|
|
124
|
+
pex/docs/html/_pagefind/pagefind-entry.json,sha256=F8iqak_nhKOhkNuiy2Wbs3q-BtsZPwjxczv0O4QdDew,90
|
|
125
125
|
pex/docs/html/_pagefind/pagefind-highlight.js,sha256=5hRyi7gOMY9tlTe-tbmDrVJpoxbnYxhbJeoGwtmCfXA,43944
|
|
126
126
|
pex/docs/html/_pagefind/pagefind-modular-ui.css,sha256=ZTqynk3lYp9t319vzfXSs-tTmowH__ila4ziFWpXB4g,7336
|
|
127
127
|
pex/docs/html/_pagefind/pagefind-modular-ui.js,sha256=-DCEOJ2cInrvjEGZFxCuYy81EMWbKHhMu4wivlJmUzE,14486
|
|
128
128
|
pex/docs/html/_pagefind/pagefind-ui.css,sha256=GL61nVezuyVA4ynNRJejhEwUBxhBtx4rDYVlAgI_W1U,14486
|
|
129
129
|
pex/docs/html/_pagefind/pagefind-ui.js,sha256=WQ3yec_CMkBKswl16Ig5N_zJzeCgL4z9y344TcJeKAQ,78367
|
|
130
|
-
pex/docs/html/_pagefind/pagefind.
|
|
130
|
+
pex/docs/html/_pagefind/pagefind.en_4eb6e6f279.pf_meta,sha256=1VVd-JmIXnfYh57fSq84iZbVhGrBEX06WmyR4t13klE,152
|
|
131
131
|
pex/docs/html/_pagefind/pagefind.js,sha256=Q-4jKyPif6awDU9x8IoWXTWoJJR1JZicegUYQ-QI4MA,32912
|
|
132
132
|
pex/docs/html/_pagefind/wasm.en.pagefind,sha256=mG0TKIE7WXynsyg-tpiMZiVG2Hwebbt2UqFqlqdTTsE,70873
|
|
133
133
|
pex/docs/html/_pagefind/wasm.unknown.pagefind,sha256=eAREknqQnc_y96pbl8eYz9zqfUXsqe64B7HwrQE2SkY,67202
|
|
134
|
-
pex/docs/html/_pagefind/fragment/
|
|
135
|
-
pex/docs/html/_pagefind/fragment/
|
|
136
|
-
pex/docs/html/_pagefind/fragment/
|
|
137
|
-
pex/docs/html/_pagefind/fragment/
|
|
138
|
-
pex/docs/html/_pagefind/fragment/
|
|
139
|
-
pex/docs/html/_pagefind/fragment/
|
|
140
|
-
pex/docs/html/_pagefind/fragment/
|
|
141
|
-
pex/docs/html/_pagefind/fragment/
|
|
142
|
-
pex/docs/html/_pagefind/index/
|
|
134
|
+
pex/docs/html/_pagefind/fragment/en_1caf19d.pf_fragment,sha256=fSUo8MMVcVWZ-o2Zk-WumtLxdJqBRuaDteLolIJvOJ0,369
|
|
135
|
+
pex/docs/html/_pagefind/fragment/en_2268ed8.pf_fragment,sha256=YtJbzbFGdbhvo77454kPY1lQ6VfK4duqbkC6ypxwawg,360
|
|
136
|
+
pex/docs/html/_pagefind/fragment/en_469c87d.pf_fragment,sha256=hVU52bY_Wn4jsZ_JyleodEz9pbURgB5pjsCzgyP_lBk,6821
|
|
137
|
+
pex/docs/html/_pagefind/fragment/en_4a75d8d.pf_fragment,sha256=MFbLe4zEElh2as446BJIajIWu_uBGIAszH2K5Zc52ls,1142
|
|
138
|
+
pex/docs/html/_pagefind/fragment/en_9fe4bcc.pf_fragment,sha256=621SOh9cnT-GQ9G7EkSCSVR5gzaHikAjuoQQml7N09I,4847
|
|
139
|
+
pex/docs/html/_pagefind/fragment/en_a951443.pf_fragment,sha256=h9w-CBjEKfBM7Pba-FQOIoPTRAUChwZnpptDKRBLmWM,3648
|
|
140
|
+
pex/docs/html/_pagefind/fragment/en_af1fb65.pf_fragment,sha256=fuHpeP6UrFdWvGiiEAIpmC6jILqnSYi4Xn-lvDIR1nc,3019
|
|
141
|
+
pex/docs/html/_pagefind/fragment/en_e0b014e.pf_fragment,sha256=UffRSQkll4itGiHWv7XT1TtgPunYyHZ5cikcI8ZmhC8,1158
|
|
142
|
+
pex/docs/html/_pagefind/index/en_f48c2e4.pf_index,sha256=PuVRMvbbtGNc11HWsHRIIL1jxvYIX5OuhfBX__Teero,28865
|
|
143
143
|
pex/docs/html/_sources/buildingpex.rst.txt,sha256=87P3ZO871MILL9pmpDM8_M7_YV1z5HjTYa9m8yuxTa4,19138
|
|
144
144
|
pex/docs/html/_sources/index.rst.txt,sha256=vWt1s6dirYeR-9mFJY1SClwWvbWqIqJSFCAF1CdZojc,1468
|
|
145
145
|
pex/docs/html/_sources/recipes.rst.txt,sha256=kerzvp8_t5io6eGl3YJODtNBQy7GmY2AA6RHaij9C-g,6958
|
|
@@ -149,7 +149,7 @@ pex/docs/html/_sources/api/vars.md.txt,sha256=C9gu5czyB-g788xRfYKF8P176ew_q97X6z
|
|
|
149
149
|
pex/docs/html/_static/basic.css,sha256=ZW_xus1vJg_H1xuX-cLx_L9pLchL9GnNlSA078ue7-0,14685
|
|
150
150
|
pex/docs/html/_static/debug.css,sha256=DQXNnnnVMjQwRmfAjwKXHeYZbA_8pZPDkDs2Z7QFWtY,1266
|
|
151
151
|
pex/docs/html/_static/doctools.js,sha256=KZLAnfkYJqjTPjtItkXud-RXrc98cS13aoFOHixEi0M,4322
|
|
152
|
-
pex/docs/html/_static/documentation_options.js,sha256=
|
|
152
|
+
pex/docs/html/_static/documentation_options.js,sha256=h06qvaWKMbza0MvL3bJy0mDYox8uD1YNy1ZSGd_R1h0,329
|
|
153
153
|
pex/docs/html/_static/file.png,sha256=XEvJoWrr84xLlQ9ZuOUByjZJUyjLnrYiIYvOkGSjXj4,286
|
|
154
154
|
pex/docs/html/_static/language_data.js,sha256=O8MRVjt_xegPyrL4Ypd0vzy2swICAA3zbf-OaVqQI7c,4598
|
|
155
155
|
pex/docs/html/_static/minus.png,sha256=R-f8UNs2mfHKQc6aL_ogLADF0dUYDFX2K6hZsb1swAg,90
|
|
@@ -169,7 +169,7 @@ pex/docs/html/_static/styles/furo-extensions.css,sha256=PSsCB3EaBzE9-2yLJyKV9fkx
|
|
|
169
169
|
pex/docs/html/_static/styles/furo-extensions.css.map,sha256=CzW267gfKqH8ruMlwJbWg-MsGAipIgZwoaP4gwDGkVw,7762
|
|
170
170
|
pex/docs/html/_static/styles/furo.css,sha256=666beINeSQtLZbSeNCMj62G7a13xiX1YwJVvij3jr-8,50749
|
|
171
171
|
pex/docs/html/_static/styles/furo.css.map,sha256=0k0kb9TwrJYQRT-2cbjTcOz7PQykGWHdy2BSuVMtrnY,76038
|
|
172
|
-
pex/docs/html/api/vars.html,sha256=
|
|
172
|
+
pex/docs/html/api/vars.html,sha256=hahWmNkn7TZ5lzO-RmaBENG6sxqBqJi3TAK3SiqXjNs,34903
|
|
173
173
|
pex/fs/__init__.py,sha256=ues2bnsufy1lYRyoWsiP-G4kuPrV-tXaZ0x-HFJFpwY,3605
|
|
174
174
|
pex/fs/_posix.py,sha256=p-VkjEfRNXduBmkxcuEXWM1g6y6xrkufSYzEy93tqjA,1275
|
|
175
175
|
pex/fs/_windows.py,sha256=apacgHpxNutF5HkU6cYOLHq7yqaijRMsFBdsdKSviDo,3304
|
|
@@ -182,9 +182,9 @@ pex/pip/installation.py,sha256=CFykX2FEPygqO0jxMzPG-rvd2Eos8YJ2cviyMsOUayU,21301
|
|
|
182
182
|
pex/pip/local_project.py,sha256=0HsnUgb0d1XX1TokVogF1xV-pTFNuBLDG-7K2j5VUVI,2040
|
|
183
183
|
pex/pip/log_analyzer.py,sha256=YLecIWrjTBvDZA_OwvQlcR1gf6-rI_eBt_LFZTA2E-U,4362
|
|
184
184
|
pex/pip/tailer.py,sha256=af7yJ1rxvtTltno1BEVgJ6lf1C0PPnCzCs6CWto7Y9s,4445
|
|
185
|
-
pex/pip/tool.py,sha256
|
|
186
|
-
pex/pip/vcs.py,sha256=
|
|
187
|
-
pex/pip/version.py,sha256=
|
|
185
|
+
pex/pip/tool.py,sha256=CC9pN5b9cB9Poxt4aptsrOP19rx29dlZZotKHPwP8cY,37996
|
|
186
|
+
pex/pip/vcs.py,sha256=6CE2TBgaeuZ8pVS8qDsA_Dkx_MRNBnExREuCxohwQpM,6259
|
|
187
|
+
pex/pip/version.py,sha256=5CgNwIwrXVLMqoLOTV-gIMH1KLuQ8ELnfBWFM8_f00k,12812
|
|
188
188
|
pex/pip/dependencies/__init__.py,sha256=Hwrin59pqb2QPU4ysCPUhqzfsE1PHx56a-ED39eEV0Q,5126
|
|
189
189
|
pex/pip/dependencies/requires.py,sha256=OHEsklGHs05Ew5E-hb9q_lQ7ijHByNN_YRTlvy-iuiU,5419
|
|
190
190
|
pex/pip/foreign_platform/__init__.py,sha256=MQ9I_K_rkL_nKGHG2GcwVfgrJ20vC2Rff8wPeVZchNM,7924
|
|
@@ -202,10 +202,10 @@ pex/resolve/config.py,sha256=2urR5rvh6pY8tZzUfRdUVGYrAY1iXURp_N4lrnXIdJA,3362
|
|
|
202
202
|
pex/resolve/configured_resolve.py,sha256=jd-lVJjXXtNlEbTlfaRpprETcDAywrpmm2Hpu0-T9ns,9617
|
|
203
203
|
pex/resolve/configured_resolver.py,sha256=MRzp1hVHl7ooKHEhESN7oxMd5fOpxuXOGYiUXZe0Yww,3457
|
|
204
204
|
pex/resolve/downloads.py,sha256=8R4GI-PSSLw2qv6XKsGyDFEiugfJgw2G6F4lywtU_Xk,7074
|
|
205
|
-
pex/resolve/lock_downloader.py,sha256=
|
|
205
|
+
pex/resolve/lock_downloader.py,sha256=wFWWPg1IWwLCAHN43ci28nqCrodmZM8mmKtMRW45O4M,15386
|
|
206
206
|
pex/resolve/lock_resolver.py,sha256=b6UoqaXPNdWEt1JC8S6HSc4el5ows6kmIa5T87OsAm0,23398
|
|
207
207
|
pex/resolve/locked_resolve.py,sha256=h47WC84zHgE1H3kf9OahfSa_df0fEfxtIWeLX7stK50,40672
|
|
208
|
-
pex/resolve/locker.py,sha256=
|
|
208
|
+
pex/resolve/locker.py,sha256=PdTsNF66GJmCRilk_POEGZ7eZP3aoTg6UNPIDfUlpmY,30421
|
|
209
209
|
pex/resolve/locker_patches.py,sha256=KttN07cCok3ajNm5TLzsZhBTPmPDyO33WkDbE4G9TB4,8043
|
|
210
210
|
pex/resolve/package_repository.py,sha256=xMU9aTxojS2sNmWp03jfMBTIGhq3eqNuNOacl8BiiGY,15123
|
|
211
211
|
pex/resolve/path_mappings.py,sha256=d6JVzD0K342ELz3O8AcsaXoikLDF3xYrgbXkixMmf3Q,2073
|
|
@@ -985,10 +985,10 @@ pex/windows/stubs/uv-trampoline-aarch64-console.exe,sha256=1S2aM-6CV7rKz-3ncM5X7
|
|
|
985
985
|
pex/windows/stubs/uv-trampoline-aarch64-gui.exe,sha256=mb8x1FpyH-wy11X5YgWfqh_VUwBb62M4Zf9aFr5V4EE,40448
|
|
986
986
|
pex/windows/stubs/uv-trampoline-x86_64-console.exe,sha256=nLopBrlCMMFjkKVRlY7Ke2zFGpQOyF5mSlLs0d7-HRQ,40960
|
|
987
987
|
pex/windows/stubs/uv-trampoline-x86_64-gui.exe,sha256=icnp1oXrOZpc-dHTGvDbTHjr-D8M0eamvRrC9bPI_KI,41984
|
|
988
|
-
pex-2.
|
|
989
|
-
pex-2.
|
|
990
|
-
pex-2.
|
|
991
|
-
pex-2.
|
|
992
|
-
pex-2.
|
|
993
|
-
pex-2.
|
|
994
|
-
pex-2.
|
|
988
|
+
pex-2.66.0.dist-info/METADATA,sha256=DDpyoO3f02WzA8ozzhI-_mHe2XPV-_PzJz2h0imap8w,7476
|
|
989
|
+
pex-2.66.0.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
|
|
990
|
+
pex-2.66.0.dist-info/entry_points.txt,sha256=LD9tcxNxdsVLeIF6zR7dyH1vgo2eD9a-05TC1UraGMQ,174
|
|
991
|
+
pex-2.66.0.dist-info/top_level.txt,sha256=HlafJUPu7mfjxv3SDH-RbkxsHOWSVbPXTEBC1hzonpM,4
|
|
992
|
+
pex-2.66.0.dist-info/licenses/LICENSE,sha256=bcDgaNzzpbyOBUIFuFt3IOHUkmW7xkv1FdLPeRl99po,11323
|
|
993
|
+
pex-2.66.0.dist-info/pylock/pylock.toml,sha256=9TIk5X6BqnJ6lKu8eb0EnzwbBcOjs3QJWzcLMYx8M5k,7151
|
|
994
|
+
pex-2.66.0.dist-info/RECORD,,
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|