pex 2.66.1__py2.py3-none-any.whl → 2.67.1__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/dist_metadata.py +1 -1
- pex/docs/html/_pagefind/fragment/en_119a8a8.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_39d722b.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_4d20267.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_513cb9b.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_58fed73.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_889d8c7.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_cfaf4ce.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_ed9cf13.pf_fragment +0 -0
- pex/docs/html/_pagefind/index/{en_5564892.pf_index → en_eeef12e.pf_index} +0 -0
- pex/docs/html/_pagefind/pagefind-entry.json +1 -1
- pex/docs/html/_pagefind/pagefind.en_e36d294ae1.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/jobs.py +13 -6
- pex/resolve/configured_resolve.py +13 -5
- pex/resolve/resolver_configuration.py +1 -1
- pex/resolve/resolver_options.py +14 -9
- pex/resolve/venv_resolver.py +189 -55
- pex/version.py +1 -1
- {pex-2.66.1.dist-info → pex-2.67.1.dist-info}/METADATA +4 -4
- {pex-2.66.1.dist-info → pex-2.67.1.dist-info}/RECORD +34 -34
- pex/docs/html/_pagefind/fragment/en_30a274f.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_32bca6c.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_415e2ea.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_bcccea1.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_ca898f2.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_d4c744d.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_f2ec11e.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_f3e451d.pf_fragment +0 -0
- pex/docs/html/_pagefind/pagefind.en_421bc6c608.pf_meta +0 -0
- {pex-2.66.1.dist-info → pex-2.67.1.dist-info}/WHEEL +0 -0
- {pex-2.66.1.dist-info → pex-2.67.1.dist-info}/entry_points.txt +0 -0
- {pex-2.66.1.dist-info → pex-2.67.1.dist-info}/licenses/LICENSE +0 -0
- {pex-2.66.1.dist-info → pex-2.67.1.dist-info}/pylock/pylock.toml +0 -0
- {pex-2.66.1.dist-info → pex-2.67.1.dist-info}/top_level.txt +0 -0
pex/dist_metadata.py
CHANGED
|
@@ -780,7 +780,7 @@ class Constraint(object):
|
|
|
780
780
|
)
|
|
781
781
|
|
|
782
782
|
name = attr.ib(eq=False) # type: str
|
|
783
|
-
specifier = attr.ib(factory=SpecifierSet) # type: SpecifierSet
|
|
783
|
+
specifier = attr.ib(factory=SpecifierSet, order=False) # type: SpecifierSet
|
|
784
784
|
marker = attr.ib(default=None, eq=str) # type: Optional[Marker]
|
|
785
785
|
|
|
786
786
|
project_name = attr.ib(init=False, repr=False) # type: ProjectName
|
|
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_e36d294ae1","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.67.1)</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.67.1)</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.67.1/" aria-label="PyPI"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
|
|
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.67.1/pex" aria-label="Download"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
|
|
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=31e3cba7"></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.67.1)</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.67.1)</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.67.1/" aria-label="PyPI"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
|
|
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.67.1/pex" aria-label="Download"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
|
|
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=31e3cba7"></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.67.1)</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.67.1)</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.67.1/" aria-label="PyPI"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
|
|
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.67.1/pex" aria-label="Download"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
|
|
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=31e3cba7"></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.67.1)</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.67.1)</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.67.1/" aria-label="PyPI"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
|
|
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.67.1/pex" aria-label="Download"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
|
|
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=31e3cba7"></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.67.1)</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.67.1)</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.67.1/" aria-label="PyPI"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
|
|
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.67.1/pex" aria-label="Download"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
|
|
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=31e3cba7"></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.67.1)</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.67.1)</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.67.1/" aria-label="PyPI"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
|
|
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.67.1/pex" aria-label="Download"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
|
|
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=31e3cba7"></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.67.1)</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.67.1)</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.67.1/" aria-label="PyPI"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
|
|
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.67.1/pex" aria-label="Download"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
|
|
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=31e3cba7"></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.67.1)</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.67.1)</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.67.1/" aria-label="PyPI"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
|
|
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.67.1/pex" aria-label="Download"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg">
|
|
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=31e3cba7"></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
|
|
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
|
|
147
|
-
|
|
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
|
-
|
|
159
|
+
resolve_from_venvs(
|
|
152
160
|
targets=targets,
|
|
153
|
-
|
|
161
|
+
venvs=resolver_configuration.venvs,
|
|
154
162
|
requirement_configuration=requirement_configuration,
|
|
155
163
|
pip_configuration=resolver_configuration.pip_configuration,
|
|
156
164
|
compile=compile_pyc,
|
|
@@ -251,7 +251,7 @@ class PreResolvedConfiguration(object):
|
|
|
251
251
|
|
|
252
252
|
@attr.s(frozen=True)
|
|
253
253
|
class VenvRepositoryConfiguration(object):
|
|
254
|
-
|
|
254
|
+
venvs = attr.ib() # type: Tuple[Virtualenv, ...]
|
|
255
255
|
pip_configuration = attr.ib() # type: PipConfiguration
|
|
256
256
|
|
|
257
257
|
@property
|
pex/resolve/resolver_options.py
CHANGED
|
@@ -56,9 +56,10 @@ class _HandleTransitiveAction(Action):
|
|
|
56
56
|
class _ResolveVenvAction(Action):
|
|
57
57
|
def __init__(self, *args, **kwargs):
|
|
58
58
|
kwargs["nargs"] = "?"
|
|
59
|
-
super(_ResolveVenvAction, self).__init__(*args, **kwargs)
|
|
59
|
+
super(_ResolveVenvAction, self).__init__(*args, default=[], **kwargs)
|
|
60
60
|
|
|
61
61
|
def __call__(self, parser, namespace, value, option_str=None):
|
|
62
|
+
venvs = getattr(namespace, self.dest)
|
|
62
63
|
if value:
|
|
63
64
|
if not os.path.exists(value):
|
|
64
65
|
raise ArgumentError(
|
|
@@ -86,7 +87,7 @@ class _ResolveVenvAction(Action):
|
|
|
86
87
|
"path.".format(option=option_str, value=value)
|
|
87
88
|
),
|
|
88
89
|
)
|
|
89
|
-
|
|
90
|
+
venvs.append(venv)
|
|
90
91
|
else:
|
|
91
92
|
current_venv = Virtualenv.enclosing(python=sys.executable)
|
|
92
93
|
if not current_venv:
|
|
@@ -105,7 +106,7 @@ class _ResolveVenvAction(Action):
|
|
|
105
106
|
)
|
|
106
107
|
),
|
|
107
108
|
)
|
|
108
|
-
|
|
109
|
+
venvs.append(current_venv)
|
|
109
110
|
|
|
110
111
|
|
|
111
112
|
def register(
|
|
@@ -320,14 +321,18 @@ def register(
|
|
|
320
321
|
if include_venv_repository:
|
|
321
322
|
repository_choice.add_argument(
|
|
322
323
|
"--venv-repository",
|
|
323
|
-
dest="
|
|
324
|
+
dest="venv_repositories",
|
|
324
325
|
action=_ResolveVenvAction,
|
|
325
|
-
type=str,
|
|
326
326
|
help=(
|
|
327
327
|
"Resolve requirements from the given virtual environment instead of from "
|
|
328
328
|
"--index servers, --find-links repos or a --lock file. The virtual environment to "
|
|
329
329
|
"resolve from can be specified as the path to the venv or the path of its"
|
|
330
|
-
"interpreter. If no value is specified, the current active venv is used."
|
|
330
|
+
"interpreter. If no value is specified, the current active venv is used. Multiple "
|
|
331
|
+
"virtual environments may be specified via multiple --venv-repository options and "
|
|
332
|
+
"the resolve will be the combined results. Each virtual environment will be "
|
|
333
|
+
"resolved from individually and must contain the full transitive closure of "
|
|
334
|
+
"requirements. This allows for creating a multi-platform PEX by specifying "
|
|
335
|
+
"multiple virtual environments; say one for Python 3.12 and one for Python 3.13."
|
|
331
336
|
),
|
|
332
337
|
)
|
|
333
338
|
|
|
@@ -803,9 +808,9 @@ def configure(
|
|
|
803
808
|
sdists=tuple(sdists), wheels=tuple(wheels), pip_configuration=pip_configuration
|
|
804
809
|
)
|
|
805
810
|
|
|
806
|
-
|
|
807
|
-
if
|
|
808
|
-
return VenvRepositoryConfiguration(
|
|
811
|
+
venvs = getattr(options, "venv_repositories", None)
|
|
812
|
+
if venvs:
|
|
813
|
+
return VenvRepositoryConfiguration(venvs=tuple(venvs), pip_configuration=pip_configuration)
|
|
809
814
|
|
|
810
815
|
if pylock:
|
|
811
816
|
return PylockRepositoryConfiguration(
|
pex/resolve/venv_resolver.py
CHANGED
|
@@ -5,14 +5,13 @@ from __future__ import absolute_import
|
|
|
5
5
|
|
|
6
6
|
import functools
|
|
7
7
|
import hashlib
|
|
8
|
-
import itertools
|
|
9
8
|
import os
|
|
10
9
|
from collections import defaultdict, deque
|
|
11
10
|
|
|
12
11
|
from pex import pex_warnings
|
|
13
12
|
from pex.atomic_directory import atomic_directory
|
|
14
13
|
from pex.cache.dirs import CacheDir, InstalledWheelDir
|
|
15
|
-
from pex.common import safe_relative_symlink
|
|
14
|
+
from pex.common import pluralize, safe_relative_symlink
|
|
16
15
|
from pex.compatibility import commonpath
|
|
17
16
|
from pex.dependency_configuration import DependencyConfiguration
|
|
18
17
|
from pex.dist_metadata import (
|
|
@@ -26,7 +25,6 @@ from pex.dist_metadata import (
|
|
|
26
25
|
from pex.exceptions import production_assert, reportable_unexpected_error_msg
|
|
27
26
|
from pex.fingerprinted_distribution import FingerprintedDistribution
|
|
28
27
|
from pex.installed_wheel import InstalledWheel
|
|
29
|
-
from pex.interpreter import PythonInterpreter
|
|
30
28
|
from pex.jobs import DEFAULT_MAX_JOBS, iter_map_parallel
|
|
31
29
|
from pex.orderedset import OrderedSet
|
|
32
30
|
from pex.pep_376 import Record
|
|
@@ -47,7 +45,18 @@ from pex.wheel import WHEEL, Wheel
|
|
|
47
45
|
from pex.whl import repacked_whl
|
|
48
46
|
|
|
49
47
|
if TYPE_CHECKING:
|
|
50
|
-
from typing import
|
|
48
|
+
from typing import (
|
|
49
|
+
DefaultDict,
|
|
50
|
+
Deque,
|
|
51
|
+
FrozenSet,
|
|
52
|
+
Iterable,
|
|
53
|
+
Iterator,
|
|
54
|
+
List,
|
|
55
|
+
Mapping,
|
|
56
|
+
Set,
|
|
57
|
+
Tuple,
|
|
58
|
+
Union,
|
|
59
|
+
)
|
|
51
60
|
|
|
52
61
|
import attr # vendor:skip
|
|
53
62
|
else:
|
|
@@ -96,12 +105,14 @@ def _normalize_record(
|
|
|
96
105
|
|
|
97
106
|
|
|
98
107
|
def _install_distribution(
|
|
99
|
-
|
|
108
|
+
venv_distribution, # type: VenvDistribution
|
|
100
109
|
result_type, # type: InstallableType.Value
|
|
101
110
|
use_system_time, # type: bool
|
|
102
|
-
distribution, # type: Distribution
|
|
103
111
|
):
|
|
104
|
-
# type: (...) ->
|
|
112
|
+
# type: (...) -> ResolvedDistribution
|
|
113
|
+
|
|
114
|
+
interpreter = venv_distribution.target.interpreter
|
|
115
|
+
distribution = venv_distribution.distribution
|
|
105
116
|
|
|
106
117
|
production_assert(distribution.type is DistributionType.INSTALLED)
|
|
107
118
|
production_assert(distribution.metadata.files.metadata.type is MetadataType.DIST_INFO)
|
|
@@ -160,31 +171,86 @@ def _install_distribution(
|
|
|
160
171
|
raise AssertionError(reportable_unexpected_error_msg())
|
|
161
172
|
|
|
162
173
|
if result_type is InstallableType.INSTALLED_WHEEL_CHROOT:
|
|
163
|
-
return
|
|
164
|
-
|
|
165
|
-
|
|
174
|
+
return ResolvedDistribution(
|
|
175
|
+
target=venv_distribution.target,
|
|
176
|
+
fingerprinted_distribution=FingerprintedDistribution(
|
|
177
|
+
distribution=Distribution.load(installed_wheel.prefix_dir),
|
|
178
|
+
fingerprint=installed_wheel.fingerprint,
|
|
179
|
+
),
|
|
180
|
+
direct_requirements=venv_distribution.direct_requirements,
|
|
166
181
|
)
|
|
167
|
-
|
|
168
|
-
|
|
182
|
+
|
|
183
|
+
return ResolvedDistribution(
|
|
184
|
+
target=venv_distribution.target,
|
|
185
|
+
fingerprinted_distribution=repacked_whl(
|
|
186
|
+
installed_wheel,
|
|
187
|
+
fingerprint=installed_wheel.fingerprint,
|
|
188
|
+
use_system_time=use_system_time,
|
|
189
|
+
),
|
|
190
|
+
direct_requirements=venv_distribution.direct_requirements,
|
|
169
191
|
)
|
|
170
192
|
|
|
171
193
|
|
|
194
|
+
@attr.s(frozen=True)
|
|
195
|
+
class VenvDistribution(object):
|
|
196
|
+
target = attr.ib() # type: LocalInterpreter
|
|
197
|
+
distribution = attr.ib() # type: Distribution
|
|
198
|
+
direct_requirements = attr.ib() # type: Iterable[Requirement]
|
|
199
|
+
|
|
200
|
+
|
|
172
201
|
def _install_venv_distributions(
|
|
173
|
-
|
|
174
|
-
distributions, # type: Iterable[Distribution]
|
|
202
|
+
venv_resolve_results, # type: Iterable[VenvResolveResult]
|
|
175
203
|
max_install_jobs=DEFAULT_MAX_JOBS, # type: int
|
|
176
204
|
result_type=InstallableType.INSTALLED_WHEEL_CHROOT, # type: InstallableType.Value
|
|
177
205
|
use_system_time=False, # type: bool
|
|
178
206
|
):
|
|
179
|
-
# type: (...) -> Iterator[
|
|
207
|
+
# type: (...) -> Iterator[ResolvedDistribution]
|
|
208
|
+
|
|
209
|
+
seen = set() # type: Set[str]
|
|
210
|
+
|
|
211
|
+
venv_distributions = [] # type: List[VenvDistribution]
|
|
212
|
+
for venv_resolve_result in venv_resolve_results:
|
|
213
|
+
target = venv_resolve_result.target
|
|
214
|
+
direct_requirements = venv_resolve_result.direct_requirements_by_project_name
|
|
215
|
+
for re_resolved_distribution in venv_resolve_result.re_resolved_distributions:
|
|
216
|
+
wheel_file_name = Wheel.from_distribution(
|
|
217
|
+
re_resolved_distribution.distribution
|
|
218
|
+
).wheel_file_name
|
|
219
|
+
if wheel_file_name in seen:
|
|
220
|
+
continue
|
|
221
|
+
|
|
222
|
+
seen.add(wheel_file_name)
|
|
223
|
+
yield ResolvedDistribution(
|
|
224
|
+
target=target,
|
|
225
|
+
fingerprinted_distribution=re_resolved_distribution,
|
|
226
|
+
direct_requirements=direct_requirements.get(
|
|
227
|
+
re_resolved_distribution.project_name, ()
|
|
228
|
+
),
|
|
229
|
+
)
|
|
230
|
+
for venv_distribution in venv_resolve_result.venv_distributions:
|
|
231
|
+
wheel_file_name = Wheel.from_distribution(venv_distribution).wheel_file_name
|
|
232
|
+
if wheel_file_name in seen:
|
|
233
|
+
continue
|
|
234
|
+
|
|
235
|
+
seen.add(wheel_file_name)
|
|
236
|
+
venv_distributions.append(
|
|
237
|
+
VenvDistribution(
|
|
238
|
+
target=target,
|
|
239
|
+
distribution=venv_distribution,
|
|
240
|
+
direct_requirements=direct_requirements.get(
|
|
241
|
+
venv_distribution.metadata.project_name, ()
|
|
242
|
+
),
|
|
243
|
+
)
|
|
244
|
+
)
|
|
180
245
|
|
|
181
|
-
|
|
182
|
-
inputs=
|
|
246
|
+
for resolved_distribution in iter_map_parallel(
|
|
247
|
+
inputs=venv_distributions,
|
|
183
248
|
function=functools.partial(
|
|
184
|
-
_install_distribution,
|
|
249
|
+
_install_distribution, result_type=result_type, use_system_time=use_system_time
|
|
185
250
|
),
|
|
186
251
|
max_jobs=max_install_jobs,
|
|
187
|
-
)
|
|
252
|
+
):
|
|
253
|
+
yield resolved_distribution
|
|
188
254
|
|
|
189
255
|
|
|
190
256
|
@attr.s(frozen=True)
|
|
@@ -359,27 +425,32 @@ def _resolve_distributions(
|
|
|
359
425
|
)
|
|
360
426
|
|
|
361
427
|
|
|
362
|
-
|
|
363
|
-
|
|
428
|
+
@attr.s(frozen=True)
|
|
429
|
+
class VenvResolveResult(object):
|
|
430
|
+
venv = attr.ib() # type: Virtualenv
|
|
431
|
+
venv_distributions = attr.ib() # type: Tuple[Distribution, ...]
|
|
432
|
+
re_resolved_distributions = attr.ib() # type: Tuple[FingerprintedDistribution, ...]
|
|
433
|
+
direct_requirements_by_project_name = attr.ib(
|
|
434
|
+
eq=False
|
|
435
|
+
) # type: Mapping[ProjectName, Iterable[Requirement]]
|
|
436
|
+
|
|
437
|
+
@property
|
|
438
|
+
def target(self):
|
|
439
|
+
# type: () -> LocalInterpreter
|
|
440
|
+
return LocalInterpreter.create(self.venv.interpreter)
|
|
441
|
+
|
|
442
|
+
|
|
443
|
+
def _resolve_from_venv(
|
|
364
444
|
venv, # type: Virtualenv
|
|
365
|
-
requirement_configuration
|
|
366
|
-
pip_configuration
|
|
367
|
-
compile
|
|
368
|
-
ignore_errors
|
|
369
|
-
result_type
|
|
370
|
-
dependency_configuration
|
|
445
|
+
requirement_configuration, # type: RequirementConfiguration
|
|
446
|
+
pip_configuration, # type: PipConfiguration
|
|
447
|
+
compile, # type: bool
|
|
448
|
+
ignore_errors, # type: bool
|
|
449
|
+
result_type, # type: InstallableType.Value
|
|
450
|
+
dependency_configuration, # type: DependencyConfiguration
|
|
371
451
|
):
|
|
372
|
-
# type: (...) -> Union[
|
|
373
|
-
|
|
452
|
+
# type: (...) -> Union[VenvResolveResult, Error]
|
|
374
453
|
target = LocalInterpreter.create(venv.interpreter)
|
|
375
|
-
if not targets.is_empty:
|
|
376
|
-
return Error(
|
|
377
|
-
"You configured custom targets via --python, --interpreter-constraint, --platform or "
|
|
378
|
-
"--complete-platform but custom targets are not allowed when resolving from a virtual "
|
|
379
|
-
"environment.\n"
|
|
380
|
-
"For such resolves, the supported target is implicitly the one matching the venv "
|
|
381
|
-
"interpreter; in this case: {target}.".format(target=target.render_description())
|
|
382
|
-
)
|
|
383
454
|
|
|
384
455
|
if pip_configuration.version:
|
|
385
456
|
compatible_pip_version = (
|
|
@@ -487,27 +558,90 @@ def resolve_from_venv(
|
|
|
487
558
|
dist.fingerprinted_distribution for dist in result.distributions
|
|
488
559
|
)
|
|
489
560
|
|
|
561
|
+
return VenvResolveResult(
|
|
562
|
+
venv=venv,
|
|
563
|
+
venv_distributions=tuple(venv_distributions),
|
|
564
|
+
re_resolved_distributions=tuple(fingerprinted_distributions),
|
|
565
|
+
direct_requirements_by_project_name=direct_requirements_by_project_name,
|
|
566
|
+
)
|
|
567
|
+
|
|
568
|
+
|
|
569
|
+
def resolve_from_venvs(
|
|
570
|
+
targets, # type: Targets
|
|
571
|
+
venvs, # type: Tuple[Virtualenv, ...]
|
|
572
|
+
requirement_configuration=RequirementConfiguration(), # type: RequirementConfiguration
|
|
573
|
+
pip_configuration=PipConfiguration(), # type: PipConfiguration
|
|
574
|
+
compile=False, # type: bool
|
|
575
|
+
ignore_errors=False, # type: bool
|
|
576
|
+
result_type=InstallableType.INSTALLED_WHEEL_CHROOT, # type: InstallableType.Value
|
|
577
|
+
dependency_configuration=DependencyConfiguration(), # type: DependencyConfiguration
|
|
578
|
+
):
|
|
579
|
+
# type: (...) -> Union[ResolveResult, Error]
|
|
580
|
+
|
|
581
|
+
if not targets.is_empty:
|
|
582
|
+
return Error(
|
|
583
|
+
"You configured custom targets via --python, --interpreter-constraint, --platform or "
|
|
584
|
+
"--complete-platform but custom targets are not allowed when resolving from {venvs}.\n"
|
|
585
|
+
"For such resolves, the supported target is implicitly the one matching the venv "
|
|
586
|
+
"{interpreters}; in this case:{targets}.".format(
|
|
587
|
+
venvs="a virtual environment" if len(venvs) == 1 else "virtual environments",
|
|
588
|
+
interpreters=pluralize(venvs, "interpreter"),
|
|
589
|
+
targets=(
|
|
590
|
+
" {target}".format(
|
|
591
|
+
target=LocalInterpreter.create(venvs[0].interpreter).render_description()
|
|
592
|
+
)
|
|
593
|
+
if len(venvs) == 1
|
|
594
|
+
else "\n {targets}".format(
|
|
595
|
+
targets="\n ".join(
|
|
596
|
+
LocalInterpreter.create(venv.interpreter).render_description()
|
|
597
|
+
for venv in venvs
|
|
598
|
+
)
|
|
599
|
+
)
|
|
600
|
+
),
|
|
601
|
+
)
|
|
602
|
+
)
|
|
603
|
+
|
|
604
|
+
errors = [] # type: List[Error]
|
|
605
|
+
venv_resolve_results = [] # type: List[VenvResolveResult]
|
|
606
|
+
for result in iter_map_parallel(
|
|
607
|
+
venvs,
|
|
608
|
+
functools.partial(
|
|
609
|
+
_resolve_from_venv,
|
|
610
|
+
requirement_configuration=requirement_configuration,
|
|
611
|
+
pip_configuration=pip_configuration,
|
|
612
|
+
compile=compile,
|
|
613
|
+
ignore_errors=ignore_errors,
|
|
614
|
+
result_type=result_type,
|
|
615
|
+
dependency_configuration=dependency_configuration,
|
|
616
|
+
),
|
|
617
|
+
):
|
|
618
|
+
if isinstance(result, Error):
|
|
619
|
+
errors.append(result)
|
|
620
|
+
else:
|
|
621
|
+
venv_resolve_results.append(result)
|
|
622
|
+
|
|
623
|
+
if len(errors) == 1:
|
|
624
|
+
return errors[0]
|
|
625
|
+
elif errors:
|
|
626
|
+
return Error(
|
|
627
|
+
"Failed to resolve from {count} of {total} virtual environments:\n{failures}".format(
|
|
628
|
+
count=len(errors),
|
|
629
|
+
total=len(venvs),
|
|
630
|
+
failures="\n".join(
|
|
631
|
+
"{index}. {error}".format(index=index, error=error)
|
|
632
|
+
for index, error in enumerate(errors, start=1)
|
|
633
|
+
),
|
|
634
|
+
)
|
|
635
|
+
)
|
|
636
|
+
|
|
490
637
|
return ResolveResult(
|
|
491
638
|
dependency_configuration=dependency_configuration,
|
|
492
639
|
distributions=tuple(
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
],
|
|
499
|
-
)
|
|
500
|
-
for fingerprinted_distribution in itertools.chain(
|
|
501
|
-
list(
|
|
502
|
-
_install_venv_distributions(
|
|
503
|
-
venv=venv,
|
|
504
|
-
distributions=venv_distributions,
|
|
505
|
-
max_install_jobs=pip_configuration.max_jobs,
|
|
506
|
-
result_type=result_type,
|
|
507
|
-
use_system_time=True,
|
|
508
|
-
)
|
|
509
|
-
),
|
|
510
|
-
fingerprinted_distributions,
|
|
640
|
+
_install_venv_distributions(
|
|
641
|
+
venv_resolve_results,
|
|
642
|
+
max_install_jobs=pip_configuration.max_jobs,
|
|
643
|
+
result_type=result_type,
|
|
644
|
+
use_system_time=True,
|
|
511
645
|
)
|
|
512
646
|
),
|
|
513
647
|
type=result_type,
|
pex/version.py
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pex
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.67.1
|
|
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.67.1/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.67.1/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.67.1
|
|
13
13
|
Keywords: package,executable,virtualenv,lock,freeze
|
|
14
14
|
Classifier: Development Status :: 5 - Production/Stable
|
|
15
15
|
Classifier: Intended Audience :: Developers
|
|
@@ -13,7 +13,7 @@ pex/compatibility.py,sha256=v3y2THaiaYofZV0Bru6FwoM2OxDl03POkai1tQ245vY,10117
|
|
|
13
13
|
pex/compiler.py,sha256=oDQ8env2V2Vo8KCXxQ6U7J9wxXB7y8vLazvDl_oJ8vo,3568
|
|
14
14
|
pex/dependency_configuration.py,sha256=F-aFtAoODe69lmI8wE2KN1T_RYvEdOUxktg_mjp78Ko,9197
|
|
15
15
|
pex/dependency_manager.py,sha256=DsqhgTGozNVUwStqcZR9WgJgjhZCzPp4wUa7PtbL8-M,4379
|
|
16
|
-
pex/dist_metadata.py,sha256
|
|
16
|
+
pex/dist_metadata.py,sha256=-aB5ZSSfQ-MQrDkoJTs9xAUB-MxeS8VfH6TY65kOBoQ,48262
|
|
17
17
|
pex/entry_points_txt.py,sha256=9_RU4Zx1ybZDokV84FK9MRe_7MnytSEntD9v6njbnJg,3475
|
|
18
18
|
pex/enum.py,sha256=kBW7RJLtef3pfltVpp0Uvs5uCpiXql_ncdKDn2In7vM,6174
|
|
19
19
|
pex/environment.py,sha256=NBfoWjCfdqcHYMJixTItDm_dGymOVJrzws0BoV4oeow,36472
|
|
@@ -31,7 +31,7 @@ pex/installed_wheel.py,sha256=zPBq4AuXh4TsrtNU86bs1s3zc44YHckJp94y9oHZ_GE,5270
|
|
|
31
31
|
pex/interpreter.py,sha256=Ka9QCoP3HL9xIJwW9f5YGvfWzc3kEWM0CuZ-7cWJSeE,63272
|
|
32
32
|
pex/interpreter_constraints.py,sha256=K-6VhVXeUVrgO4OYWylNJKLX1H1esfyxFGDxpTbAl1M,14710
|
|
33
33
|
pex/interpreter_implementation.py,sha256=OfatzBe4P-CqF4y9Jlwt-x41q7THspGexKyYPkma4w0,1137
|
|
34
|
-
pex/jobs.py,sha256=
|
|
34
|
+
pex/jobs.py,sha256=OEcJ9iiyfz4g-XMXeIBeEwxD-FP_iZ6ChON81d1o6o4,28789
|
|
35
35
|
pex/lang.py,sha256=Rhqq2EyYjCy1Ejg5wX0N5gZI0F0tIrxAgnlWSvf3dI4,1031
|
|
36
36
|
pex/layout.py,sha256=_I2RjSF5wNQGmnUCwakPzUK-U140LtlP40EtQS6VyyQ,23961
|
|
37
37
|
pex/network_configuration.py,sha256=Nim3wdAwpF4KmUgDcC-LEUPtJVurvm0bX0yTwnN8vVA,1900
|
|
@@ -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=HBC8Gd_iQL40pnxHTDcmKYZgP2DONF0-O_Jbbicw5lM,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=cRF6fxOnrn-KZJ_tb7Qlamg6nNqU6mIsUiSDG5b9uo0,57407
|
|
117
|
+
pex/docs/html/genindex.html,sha256=E9n9yeC1POo19ijoQOL7Zzhr4eI7zgUEWV_NvxMXtPQ,17198
|
|
118
|
+
pex/docs/html/index.html,sha256=xJG8Tu1Ud-VGRXJHXAwrcS0iYrjxfqN5UKcZAyPWcF8,25028
|
|
119
|
+
pex/docs/html/recipes.html,sha256=NroFhFhWtvtB7xB-GkXmaodT5fM032gUdrXuHqjsKmQ,35192
|
|
120
|
+
pex/docs/html/scie.html,sha256=Vkqx9rOgQKwB2oN13MI2poENHXITjH1FVxMvwvvbGpw,62182
|
|
121
|
+
pex/docs/html/search.html,sha256=J6sXtJgFSWzM5QG9P7ULyoBK5nxn30ayd1DlaSP5nw0,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=2qWIOnK1iaoTb6IkQAzyUg0CGjF8dCMieauF5Jc4PYo,22754
|
|
124
|
+
pex/docs/html/_pagefind/pagefind-entry.json,sha256=I2r5TWdZ_Cn-IgnhHyl8-tqqL-10F5UH0QWYYY9itFs,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_e36d294ae1.pf_meta,sha256=M1YS_UHk0Xeli5ZxznV-xdsAyjaHCV7bIVML04YzZyE,153
|
|
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_119a8a8.pf_fragment,sha256=X47n9yEHgPKvrXTpI2eygKgpaao3XFI6WFXS3g9eyWo,4847
|
|
135
|
+
pex/docs/html/_pagefind/fragment/en_39d722b.pf_fragment,sha256=dWqTK8_CdN4Vr0v9voknT5-vEg0ITmVLUZqedQfWe-Q,1158
|
|
136
|
+
pex/docs/html/_pagefind/fragment/en_4d20267.pf_fragment,sha256=i8OYMf_AiI80-k0Ozu6rZIILtb_q0g5bV7RP0F3ZyaE,3019
|
|
137
|
+
pex/docs/html/_pagefind/fragment/en_513cb9b.pf_fragment,sha256=5B11JwyCW5rYi05EtudTJ50c6UC7i58APj9HSU0kAyQ,370
|
|
138
|
+
pex/docs/html/_pagefind/fragment/en_58fed73.pf_fragment,sha256=ureV1aF0Xk6OKys1sCzN5Px0bySWlp4_L04ffm89tgk,6821
|
|
139
|
+
pex/docs/html/_pagefind/fragment/en_889d8c7.pf_fragment,sha256=9ddzY3jd-rcsTI1LQKVs9vDLgNbpzC7ihw1d_ASvR0c,3648
|
|
140
|
+
pex/docs/html/_pagefind/fragment/en_cfaf4ce.pf_fragment,sha256=ttA8H1tuuBV_9dAj832DfaJ76Ch6bcVsAASs123L3fc,1142
|
|
141
|
+
pex/docs/html/_pagefind/fragment/en_ed9cf13.pf_fragment,sha256=fZ3x4h4l6GdzQkTlmUziNX2vXPlyhaIVLT66XMF4V_A,360
|
|
142
|
+
pex/docs/html/_pagefind/index/en_eeef12e.pf_index,sha256=rjAmO9_Jh410uNait6FK2msRqUxzOrYjSAXJ0etmk3o,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=xOF19IrCEj83yJgf5Xl5OEzFrKmGNuVNBgP23UI18zw,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=UlO7OVXdnuOD82g2i33ka0ORYhYyvBs8GqaqcenwAKg,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
|
|
@@ -199,7 +199,7 @@ pex/repl/pex_repl.py,sha256=2jKrhzhZnGedHnbaZEyekt0jGKictqP4UmOipgM2Bu0,10020
|
|
|
199
199
|
pex/resolve/__init__.py,sha256=uASB5OU996Jax-h3kMmeZjG5Jdy9BYDR6A1swkBoFDg,107
|
|
200
200
|
pex/resolve/abbreviated_platforms.py,sha256=2CY6_AUIROeEBEsFn228MxY_IonQYknXotfSTypoRpM,7168
|
|
201
201
|
pex/resolve/config.py,sha256=2urR5rvh6pY8tZzUfRdUVGYrAY1iXURp_N4lrnXIdJA,3362
|
|
202
|
-
pex/resolve/configured_resolve.py,sha256=
|
|
202
|
+
pex/resolve/configured_resolve.py,sha256=HmzQuAKRF5Tf4oQmCK0DB8rOizylVn6IOvfn360E7n8,10059
|
|
203
203
|
pex/resolve/configured_resolver.py,sha256=MRzp1hVHl7ooKHEhESN7oxMd5fOpxuXOGYiUXZe0Yww,3457
|
|
204
204
|
pex/resolve/downloads.py,sha256=8R4GI-PSSLw2qv6XKsGyDFEiugfJgw2G6F4lywtU_Xk,7074
|
|
205
205
|
pex/resolve/lock_downloader.py,sha256=wFWWPg1IWwLCAHN43ci28nqCrodmZM8mmKtMRW45O4M,15386
|
|
@@ -215,14 +215,14 @@ pex/resolve/project.py,sha256=BYy1m8-jUsiaBR1DF3eJiqpqvdqrzB-cQDPvcMD2v-0,14923
|
|
|
215
215
|
pex/resolve/requirement_configuration.py,sha256=sHnf2OxhHEd3tiuaw8VTpE420TcpBv-EUnUeJ2iAWm4,3145
|
|
216
216
|
pex/resolve/requirement_options.py,sha256=4E5e_81ANZMg3-a1zYnJ--rixyqaEJ49197GjB3AYbA,2288
|
|
217
217
|
pex/resolve/resolved_requirement.py,sha256=78dn81rEqnbkbhR9C6rAh_rTfQTLq-zUaZZVh9Z7ZAQ,2480
|
|
218
|
-
pex/resolve/resolver_configuration.py,sha256=
|
|
219
|
-
pex/resolve/resolver_options.py,sha256=
|
|
218
|
+
pex/resolve/resolver_configuration.py,sha256=CXJBxMGgAFUzQjcT25NSDL00He7kgyw2eGYqkQPjhFc,9793
|
|
219
|
+
pex/resolve/resolver_options.py,sha256=7EihW0PYLBSfYPfgSx4f0x3xHC_OkCJgTAD1bvlXXFg,44338
|
|
220
220
|
pex/resolve/resolvers.py,sha256=0YFFukBDDTe0laT7at7wRMMbynaPzZhaZl55NgI1hS4,10156
|
|
221
221
|
pex/resolve/script_metadata.py,sha256=6PdrBvUmKQGdTIPHfE-F07460drqjQB_HuBgz_35ql0,6903
|
|
222
222
|
pex/resolve/target_configuration.py,sha256=FFrVHKgceCMlse2xOgxTtdnQ7ENw3A59t4IId0F1GDw,10349
|
|
223
223
|
pex/resolve/target_options.py,sha256=6YoXvIWSyTKfkJ3fcEhqu7eDzF-TlUKhSoNlGoLApQI,12550
|
|
224
224
|
pex/resolve/target_system.py,sha256=6omSogiX5cYlSGjPrAMQpP5MwhxBu4R8X0Mw6c6Jx_M,29905
|
|
225
|
-
pex/resolve/venv_resolver.py,sha256=
|
|
225
|
+
pex/resolve/venv_resolver.py,sha256=T1VffgkESq-hPDm11zj5wnefO47InmW2szlepUaDHeU,25359
|
|
226
226
|
pex/resolve/lockfile/__init__.py,sha256=uASB5OU996Jax-h3kMmeZjG5Jdy9BYDR6A1swkBoFDg,107
|
|
227
227
|
pex/resolve/lockfile/create.py,sha256=2ryGMtQTYTRQjIOACLFExqKa05LQZUkPx0qJcrTxPWU,33673
|
|
228
228
|
pex/resolve/lockfile/download_manager.py,sha256=7mI_vUIIn4VxG3RDNxyT5yTpFLG9LH_IlGDKRMB_OJ0,9176
|
|
@@ -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.67.1.dist-info/METADATA,sha256=DDhyJQcZuP10WtBdggsWhiVoGAXi3DXFnhhHtrEO5nw,7476
|
|
989
|
+
pex-2.67.1.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
|
|
990
|
+
pex-2.67.1.dist-info/entry_points.txt,sha256=LD9tcxNxdsVLeIF6zR7dyH1vgo2eD9a-05TC1UraGMQ,174
|
|
991
|
+
pex-2.67.1.dist-info/top_level.txt,sha256=HlafJUPu7mfjxv3SDH-RbkxsHOWSVbPXTEBC1hzonpM,4
|
|
992
|
+
pex-2.67.1.dist-info/licenses/LICENSE,sha256=bcDgaNzzpbyOBUIFuFt3IOHUkmW7xkv1FdLPeRl99po,11323
|
|
993
|
+
pex-2.67.1.dist-info/pylock/pylock.toml,sha256=9TIk5X6BqnJ6lKu8eb0EnzwbBcOjs3QJWzcLMYx8M5k,7151
|
|
994
|
+
pex-2.67.1.dist-info/RECORD,,
|
|
Binary file
|
|
Binary file
|
|
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
|