pex 2.57.0__py2.py3-none-any.whl → 2.58.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/auth.py +1 -1
- pex/build_system/pep_517.py +4 -1
- pex/docs/html/_pagefind/fragment/en_1fd6283.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_3981384.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_5b3a816.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_668cbbe.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/{en_40d5577.pf_fragment → en_69b66dc.pf_fragment} +0 -0
- pex/docs/html/_pagefind/fragment/en_93e5ea3.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_9ec1cdb.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_edf644d.pf_fragment +0 -0
- pex/docs/html/_pagefind/index/{en_56ab7db.pf_index → en_b7cb935.pf_index} +0 -0
- pex/docs/html/_pagefind/pagefind-entry.json +1 -1
- pex/docs/html/_pagefind/pagefind.en_bc4997bc6d.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/pip/tool.py +16 -4
- pex/requirements.py +85 -12
- pex/resolve/package_repository.py +79 -9
- pex/resolve/requirement_configuration.py +13 -2
- pex/resolve/resolver_options.py +15 -1
- pex/version.py +1 -1
- {pex-2.57.0.dist-info → pex-2.58.1.dist-info}/METADATA +4 -4
- {pex-2.57.0.dist-info → pex-2.58.1.dist-info}/RECORD +35 -35
- pex/docs/html/_pagefind/fragment/en_279c9ed.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_789a214.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_85eee42.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_8eb3225.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_9e74eab.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_acb471b.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_fb1d997.pf_fragment +0 -0
- pex/docs/html/_pagefind/pagefind.en_bda9565956.pf_meta +0 -0
- {pex-2.57.0.dist-info → pex-2.58.1.dist-info}/WHEEL +0 -0
- {pex-2.57.0.dist-info → pex-2.58.1.dist-info}/entry_points.txt +0 -0
- {pex-2.57.0.dist-info → pex-2.58.1.dist-info}/licenses/LICENSE +0 -0
- {pex-2.57.0.dist-info → pex-2.58.1.dist-info}/pylock/pylock.toml +0 -0
- {pex-2.57.0.dist-info → pex-2.58.1.dist-info}/top_level.txt +0 -0
pex/auth.py
CHANGED
|
@@ -64,7 +64,7 @@ class Machine(object):
|
|
|
64
64
|
class PasswordEntry(object):
|
|
65
65
|
@classmethod
|
|
66
66
|
def maybe_extract_from_url(cls, url):
|
|
67
|
-
# type: (
|
|
67
|
+
# type: (Text) -> Optional[PasswordEntry]
|
|
68
68
|
url_info = urlparse.urlparse(url)
|
|
69
69
|
if not url_info.username or not url_info.password:
|
|
70
70
|
return None
|
pex/build_system/pep_517.py
CHANGED
|
@@ -11,7 +11,7 @@ from textwrap import dedent
|
|
|
11
11
|
from pex import third_party
|
|
12
12
|
from pex.build_system import DEFAULT_BUILD_BACKEND
|
|
13
13
|
from pex.build_system.pep_518 import BuildSystem, load_build_system
|
|
14
|
-
from pex.common import safe_mkdtemp
|
|
14
|
+
from pex.common import safe_mkdir, safe_mkdtemp
|
|
15
15
|
from pex.dist_metadata import DistMetadata, Distribution, MetadataType
|
|
16
16
|
from pex.jobs import Job, SpawnedJob
|
|
17
17
|
from pex.pip.version import PipVersion, PipVersionValue
|
|
@@ -227,6 +227,9 @@ def build_sdist(
|
|
|
227
227
|
"{stderr}".format(project_directory=project_directory, err=e, stderr=e.stderr)
|
|
228
228
|
)
|
|
229
229
|
|
|
230
|
+
# N.B.: Although it's not clear the spec mandates this, ensure the dist dir exists before
|
|
231
|
+
# handing it to the back end. See: https://github.com/pex-tool/pex/issues/2913 for motivation.
|
|
232
|
+
safe_mkdir(dist_dir)
|
|
230
233
|
spawned_job_or_error = _invoke_build_hook(
|
|
231
234
|
project_directory,
|
|
232
235
|
target,
|
|
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_bc4997bc6d","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.07.19 -->
|
|
11
|
-
<title>PEX runtime environment variables - Pex Docs (v2.
|
|
11
|
+
<title>PEX runtime environment variables - Pex Docs (v2.58.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=25af2a20" />
|
|
14
14
|
<link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=8dab3a3b" />
|
|
@@ -168,7 +168,7 @@
|
|
|
168
168
|
</label>
|
|
169
169
|
</div>
|
|
170
170
|
<div class="header-center">
|
|
171
|
-
<a href="../index.html"><div class="brand">Pex Docs (v2.
|
|
171
|
+
<a href="../index.html"><div class="brand">Pex Docs (v2.58.1)</div></a>
|
|
172
172
|
</div>
|
|
173
173
|
<div class="header-right">
|
|
174
174
|
<div class="theme-toggle-container theme-toggle-header">
|
|
@@ -652,12 +652,12 @@
|
|
|
652
652
|
</div>
|
|
653
653
|
<div class="right-details">
|
|
654
654
|
<div class="icons">
|
|
655
|
-
<a class="muted-link " href="https://pypi.org/project/pex/2.
|
|
655
|
+
<a class="muted-link " href="https://pypi.org/project/pex/2.58.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">
|
|
656
656
|
<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">
|
|
657
657
|
</path>
|
|
658
658
|
</svg>
|
|
659
659
|
</a>
|
|
660
|
-
<a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.
|
|
660
|
+
<a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.58.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">
|
|
661
661
|
<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">
|
|
662
662
|
</path>
|
|
663
663
|
</svg>
|
|
@@ -680,7 +680,7 @@
|
|
|
680
680
|
|
|
681
681
|
</aside>
|
|
682
682
|
</div>
|
|
683
|
-
</div><script src="../_static/documentation_options.js?v=
|
|
683
|
+
</div><script src="../_static/documentation_options.js?v=b0ba200d"></script>
|
|
684
684
|
<script src="../_static/doctools.js?v=9bcbadda"></script>
|
|
685
685
|
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
|
|
686
686
|
<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.07.19 -->
|
|
11
|
-
<title>Building .pex files - Pex Docs (v2.
|
|
11
|
+
<title>Building .pex files - Pex Docs (v2.58.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=25af2a20" />
|
|
14
14
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=8dab3a3b" />
|
|
@@ -168,7 +168,7 @@
|
|
|
168
168
|
</label>
|
|
169
169
|
</div>
|
|
170
170
|
<div class="header-center">
|
|
171
|
-
<a href="index.html"><div class="brand">Pex Docs (v2.
|
|
171
|
+
<a href="index.html"><div class="brand">Pex Docs (v2.58.1)</div></a>
|
|
172
172
|
</div>
|
|
173
173
|
<div class="header-right">
|
|
174
174
|
<div class="theme-toggle-container theme-toggle-header">
|
|
@@ -690,12 +690,12 @@ scary like <code class="docutils literal notranslate"><span class="pre">sudo</sp
|
|
|
690
690
|
</div>
|
|
691
691
|
<div class="right-details">
|
|
692
692
|
<div class="icons">
|
|
693
|
-
<a class="muted-link " href="https://pypi.org/project/pex/2.
|
|
693
|
+
<a class="muted-link " href="https://pypi.org/project/pex/2.58.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">
|
|
694
694
|
<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">
|
|
695
695
|
</path>
|
|
696
696
|
</svg>
|
|
697
697
|
</a>
|
|
698
|
-
<a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.
|
|
698
|
+
<a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.58.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">
|
|
699
699
|
<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">
|
|
700
700
|
</path>
|
|
701
701
|
</svg>
|
|
@@ -718,7 +718,7 @@ scary like <code class="docutils literal notranslate"><span class="pre">sudo</sp
|
|
|
718
718
|
|
|
719
719
|
</aside>
|
|
720
720
|
</div>
|
|
721
|
-
</div><script src="_static/documentation_options.js?v=
|
|
721
|
+
</div><script src="_static/documentation_options.js?v=b0ba200d"></script>
|
|
722
722
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
|
723
723
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
|
724
724
|
<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.07.19 --><title>Index - Pex Docs (v2.
|
|
9
|
+
<link rel="shortcut icon" href="_static/pex-icon.png"/><!-- Generated with Sphinx 8.2.3 and Furo 2025.07.19 --><title>Index - Pex Docs (v2.58.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=25af2a20" />
|
|
12
12
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=8dab3a3b" />
|
|
@@ -166,7 +166,7 @@
|
|
|
166
166
|
</label>
|
|
167
167
|
</div>
|
|
168
168
|
<div class="header-center">
|
|
169
|
-
<a href="index.html"><div class="brand">Pex Docs (v2.
|
|
169
|
+
<a href="index.html"><div class="brand">Pex Docs (v2.58.1)</div></a>
|
|
170
170
|
</div>
|
|
171
171
|
<div class="header-right">
|
|
172
172
|
<div class="theme-toggle-container theme-toggle-header">
|
|
@@ -269,12 +269,12 @@
|
|
|
269
269
|
</div>
|
|
270
270
|
<div class="right-details">
|
|
271
271
|
<div class="icons">
|
|
272
|
-
<a class="muted-link " href="https://pypi.org/project/pex/2.
|
|
272
|
+
<a class="muted-link " href="https://pypi.org/project/pex/2.58.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">
|
|
273
273
|
<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">
|
|
274
274
|
</path>
|
|
275
275
|
</svg>
|
|
276
276
|
</a>
|
|
277
|
-
<a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.
|
|
277
|
+
<a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.58.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">
|
|
278
278
|
<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">
|
|
279
279
|
</path>
|
|
280
280
|
</svg>
|
|
@@ -297,7 +297,7 @@
|
|
|
297
297
|
|
|
298
298
|
</aside>
|
|
299
299
|
</div>
|
|
300
|
-
</div><script src="_static/documentation_options.js?v=
|
|
300
|
+
</div><script src="_static/documentation_options.js?v=b0ba200d"></script>
|
|
301
301
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
|
302
302
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
|
303
303
|
<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.07.19 -->
|
|
11
|
-
<title>Pex Docs (v2.
|
|
11
|
+
<title>Pex Docs (v2.58.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=25af2a20" />
|
|
14
14
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=8dab3a3b" />
|
|
@@ -168,7 +168,7 @@
|
|
|
168
168
|
</label>
|
|
169
169
|
</div>
|
|
170
170
|
<div class="header-center">
|
|
171
|
-
<a href="#"><div class="brand">Pex Docs (v2.
|
|
171
|
+
<a href="#"><div class="brand">Pex Docs (v2.58.1)</div></a>
|
|
172
172
|
</div>
|
|
173
173
|
<div class="header-right">
|
|
174
174
|
<div class="theme-toggle-container theme-toggle-header">
|
|
@@ -350,12 +350,12 @@ To go straight to building pex files, see <a class="reference internal" href="bu
|
|
|
350
350
|
</div>
|
|
351
351
|
<div class="right-details">
|
|
352
352
|
<div class="icons">
|
|
353
|
-
<a class="muted-link " href="https://pypi.org/project/pex/2.
|
|
353
|
+
<a class="muted-link " href="https://pypi.org/project/pex/2.58.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">
|
|
354
354
|
<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">
|
|
355
355
|
</path>
|
|
356
356
|
</svg>
|
|
357
357
|
</a>
|
|
358
|
-
<a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.
|
|
358
|
+
<a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.58.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">
|
|
359
359
|
<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">
|
|
360
360
|
</path>
|
|
361
361
|
</svg>
|
|
@@ -398,7 +398,7 @@ To go straight to building pex files, see <a class="reference internal" href="bu
|
|
|
398
398
|
|
|
399
399
|
</aside>
|
|
400
400
|
</div>
|
|
401
|
-
</div><script src="_static/documentation_options.js?v=
|
|
401
|
+
</div><script src="_static/documentation_options.js?v=b0ba200d"></script>
|
|
402
402
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
|
403
403
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
|
404
404
|
<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.07.19 -->
|
|
11
|
-
<title>PEX Recipes and Notes - Pex Docs (v2.
|
|
11
|
+
<title>PEX Recipes and Notes - Pex Docs (v2.58.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=25af2a20" />
|
|
14
14
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=8dab3a3b" />
|
|
@@ -168,7 +168,7 @@
|
|
|
168
168
|
</label>
|
|
169
169
|
</div>
|
|
170
170
|
<div class="header-center">
|
|
171
|
-
<a href="index.html"><div class="brand">Pex Docs (v2.
|
|
171
|
+
<a href="index.html"><div class="brand">Pex Docs (v2.58.1)</div></a>
|
|
172
172
|
</div>
|
|
173
173
|
<div class="header-right">
|
|
174
174
|
<div class="theme-toggle-container theme-toggle-header">
|
|
@@ -439,12 +439,12 @@ $<span class="w"> </span><span class="nb">export</span><span class="w"> </span><
|
|
|
439
439
|
</div>
|
|
440
440
|
<div class="right-details">
|
|
441
441
|
<div class="icons">
|
|
442
|
-
<a class="muted-link " href="https://pypi.org/project/pex/2.
|
|
442
|
+
<a class="muted-link " href="https://pypi.org/project/pex/2.58.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">
|
|
443
443
|
<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">
|
|
444
444
|
</path>
|
|
445
445
|
</svg>
|
|
446
446
|
</a>
|
|
447
|
-
<a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.
|
|
447
|
+
<a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.58.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">
|
|
448
448
|
<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">
|
|
449
449
|
</path>
|
|
450
450
|
</svg>
|
|
@@ -491,7 +491,7 @@ $<span class="w"> </span><span class="nb">export</span><span class="w"> </span><
|
|
|
491
491
|
|
|
492
492
|
</aside>
|
|
493
493
|
</div>
|
|
494
|
-
</div><script src="_static/documentation_options.js?v=
|
|
494
|
+
</div><script src="_static/documentation_options.js?v=b0ba200d"></script>
|
|
495
495
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
|
496
496
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
|
497
497
|
<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.07.19 -->
|
|
11
|
-
<title>PEX with included Python interpreter - Pex Docs (v2.
|
|
11
|
+
<title>PEX with included Python interpreter - Pex Docs (v2.58.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=25af2a20" />
|
|
14
14
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=8dab3a3b" />
|
|
@@ -168,7 +168,7 @@
|
|
|
168
168
|
</label>
|
|
169
169
|
</div>
|
|
170
170
|
<div class="header-center">
|
|
171
|
-
<a href="index.html"><div class="brand">Pex Docs (v2.
|
|
171
|
+
<a href="index.html"><div class="brand">Pex Docs (v2.58.1)</div></a>
|
|
172
172
|
</div>
|
|
173
173
|
<div class="header-right">
|
|
174
174
|
<div class="theme-toggle-container theme-toggle-header">
|
|
@@ -632,12 +632,12 @@ uuid
|
|
|
632
632
|
</div>
|
|
633
633
|
<div class="right-details">
|
|
634
634
|
<div class="icons">
|
|
635
|
-
<a class="muted-link " href="https://pypi.org/project/pex/2.
|
|
635
|
+
<a class="muted-link " href="https://pypi.org/project/pex/2.58.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">
|
|
636
636
|
<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">
|
|
637
637
|
</path>
|
|
638
638
|
</svg>
|
|
639
639
|
</a>
|
|
640
|
-
<a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.
|
|
640
|
+
<a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.58.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">
|
|
641
641
|
<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">
|
|
642
642
|
</path>
|
|
643
643
|
</svg>
|
|
@@ -681,7 +681,7 @@ uuid
|
|
|
681
681
|
|
|
682
682
|
</aside>
|
|
683
683
|
</div>
|
|
684
|
-
</div><script src="_static/documentation_options.js?v=
|
|
684
|
+
</div><script src="_static/documentation_options.js?v=b0ba200d"></script>
|
|
685
685
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
|
686
686
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
|
687
687
|
<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.07.19 --><title>Search - Pex Docs (v2.
|
|
9
|
+
<link rel="shortcut icon" href="_static/pex-icon.png"/><!-- Generated with Sphinx 8.2.3 and Furo 2025.07.19 --><title>Search - Pex Docs (v2.58.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=25af2a20" />
|
|
11
11
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=8dab3a3b" />
|
|
12
12
|
|
|
@@ -181,7 +181,7 @@
|
|
|
181
181
|
</label>
|
|
182
182
|
</div>
|
|
183
183
|
<div class="header-center">
|
|
184
|
-
<a href="index.html"><div class="brand">Pex Docs (v2.
|
|
184
|
+
<a href="index.html"><div class="brand">Pex Docs (v2.58.1)</div></a>
|
|
185
185
|
</div>
|
|
186
186
|
<div class="header-right">
|
|
187
187
|
<div class="theme-toggle-container theme-toggle-header">
|
|
@@ -282,12 +282,12 @@
|
|
|
282
282
|
</div>
|
|
283
283
|
<div class="right-details">
|
|
284
284
|
<div class="icons">
|
|
285
|
-
<a class="muted-link " href="https://pypi.org/project/pex/2.
|
|
285
|
+
<a class="muted-link " href="https://pypi.org/project/pex/2.58.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">
|
|
286
286
|
<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">
|
|
287
287
|
</path>
|
|
288
288
|
</svg>
|
|
289
289
|
</a>
|
|
290
|
-
<a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.
|
|
290
|
+
<a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.58.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">
|
|
291
291
|
<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">
|
|
292
292
|
</path>
|
|
293
293
|
</svg>
|
|
@@ -310,7 +310,7 @@
|
|
|
310
310
|
|
|
311
311
|
</aside>
|
|
312
312
|
</div>
|
|
313
|
-
</div><script src="_static/documentation_options.js?v=
|
|
313
|
+
</div><script src="_static/documentation_options.js?v=b0ba200d"></script>
|
|
314
314
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
|
315
315
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
|
316
316
|
<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.07.19 -->
|
|
11
|
-
<title>What are .pex files? - Pex Docs (v2.
|
|
11
|
+
<title>What are .pex files? - Pex Docs (v2.58.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=25af2a20" />
|
|
14
14
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=8dab3a3b" />
|
|
@@ -168,7 +168,7 @@
|
|
|
168
168
|
</label>
|
|
169
169
|
</div>
|
|
170
170
|
<div class="header-center">
|
|
171
|
-
<a href="index.html"><div class="brand">Pex Docs (v2.
|
|
171
|
+
<a href="index.html"><div class="brand">Pex Docs (v2.58.1)</div></a>
|
|
172
172
|
</div>
|
|
173
173
|
<div class="header-right">
|
|
174
174
|
<div class="theme-toggle-container theme-toggle-header">
|
|
@@ -331,12 +331,12 @@ build executable .pex files. This is described more thoroughly in
|
|
|
331
331
|
</div>
|
|
332
332
|
<div class="right-details">
|
|
333
333
|
<div class="icons">
|
|
334
|
-
<a class="muted-link " href="https://pypi.org/project/pex/2.
|
|
334
|
+
<a class="muted-link " href="https://pypi.org/project/pex/2.58.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">
|
|
335
335
|
<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">
|
|
336
336
|
</path>
|
|
337
337
|
</svg>
|
|
338
338
|
</a>
|
|
339
|
-
<a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.
|
|
339
|
+
<a class="muted-link " href="https://github.com/pex-tool/pex/releases/download/v2.58.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">
|
|
340
340
|
<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">
|
|
341
341
|
</path>
|
|
342
342
|
</svg>
|
|
@@ -380,7 +380,7 @@ build executable .pex files. This is described more thoroughly in
|
|
|
380
380
|
|
|
381
381
|
</aside>
|
|
382
382
|
</div>
|
|
383
|
-
</div><script src="_static/documentation_options.js?v=
|
|
383
|
+
</div><script src="_static/documentation_options.js?v=b0ba200d"></script>
|
|
384
384
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
|
385
385
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
|
386
386
|
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
pex/pip/tool.py
CHANGED
|
@@ -21,6 +21,7 @@ from pex.common import safe_mkdir, safe_mkdtemp
|
|
|
21
21
|
from pex.compatibility import get_stderr_bytes_buffer, shlex_quote, urlparse
|
|
22
22
|
from pex.dependency_configuration import DependencyConfiguration
|
|
23
23
|
from pex.dist_metadata import Requirement
|
|
24
|
+
from pex.fetcher import URLFetcher
|
|
24
25
|
from pex.interpreter import PythonInterpreter
|
|
25
26
|
from pex.jobs import Job
|
|
26
27
|
from pex.network_configuration import NetworkConfiguration
|
|
@@ -53,6 +54,7 @@ if TYPE_CHECKING:
|
|
|
53
54
|
Match,
|
|
54
55
|
Optional,
|
|
55
56
|
Sequence,
|
|
57
|
+
Text,
|
|
56
58
|
Tuple,
|
|
57
59
|
Union,
|
|
58
60
|
)
|
|
@@ -64,8 +66,8 @@ else:
|
|
|
64
66
|
|
|
65
67
|
@attr.s(frozen=True)
|
|
66
68
|
class PipArgs(object):
|
|
67
|
-
indexes = attr.ib(default=None) # type: Optional[Sequence[
|
|
68
|
-
find_links = attr.ib(default=None) # type: Optional[Iterable[
|
|
69
|
+
indexes = attr.ib(default=None) # type: Optional[Sequence[Text]]
|
|
70
|
+
find_links = attr.ib(default=None) # type: Optional[Iterable[Text]]
|
|
69
71
|
network_configuration = attr.ib(default=None) # type: Optional[NetworkConfiguration]
|
|
70
72
|
|
|
71
73
|
def iter(self, version):
|
|
@@ -217,9 +219,17 @@ class PackageIndexConfiguration(object):
|
|
|
217
219
|
self,
|
|
218
220
|
pip_version, # type: PipVersionValue
|
|
219
221
|
target, # type: Union[UniversalTarget, MarkerEnvironment]
|
|
222
|
+
requirement_files=None, # type: Optional[Iterable[str]]
|
|
220
223
|
):
|
|
221
224
|
# type: (...) -> Optional[DownloadObserver]
|
|
222
|
-
return package_repositories.patch(
|
|
225
|
+
return package_repositories.patch(
|
|
226
|
+
repos_configuration=self.repos_configuration.with_contained_repos(
|
|
227
|
+
requirement_files,
|
|
228
|
+
fetcher=URLFetcher(network_configuration=self.network_configuration),
|
|
229
|
+
),
|
|
230
|
+
pip_version=pip_version,
|
|
231
|
+
target=target,
|
|
232
|
+
)
|
|
223
233
|
|
|
224
234
|
|
|
225
235
|
if TYPE_CHECKING:
|
|
@@ -640,7 +650,9 @@ class Pip(object):
|
|
|
640
650
|
),
|
|
641
651
|
(
|
|
642
652
|
package_index_configuration.patch(
|
|
643
|
-
pip_version=self.version,
|
|
653
|
+
pip_version=self.version,
|
|
654
|
+
target=universal_target or target.marker_environment,
|
|
655
|
+
requirement_files=requirement_files,
|
|
644
656
|
)
|
|
645
657
|
if package_index_configuration
|
|
646
658
|
else None
|
pex/requirements.py
CHANGED
|
@@ -5,6 +5,9 @@ from __future__ import absolute_import
|
|
|
5
5
|
|
|
6
6
|
import os
|
|
7
7
|
import re
|
|
8
|
+
import shlex
|
|
9
|
+
import sys
|
|
10
|
+
from argparse import ArgumentParser
|
|
8
11
|
from contextlib import contextmanager
|
|
9
12
|
|
|
10
13
|
from pex import attrs, dist_metadata, pex_warnings
|
|
@@ -17,6 +20,7 @@ from pex.dist_metadata import (
|
|
|
17
20
|
RequirementParseError,
|
|
18
21
|
)
|
|
19
22
|
from pex.fetcher import URLFetcher
|
|
23
|
+
from pex.orderedset import OrderedSet
|
|
20
24
|
from pex.pep_503 import ProjectName
|
|
21
25
|
from pex.third_party.packaging.markers import Marker
|
|
22
26
|
from pex.third_party.packaging.specifiers import SpecifierSet
|
|
@@ -139,7 +143,7 @@ class Source(object):
|
|
|
139
143
|
|
|
140
144
|
|
|
141
145
|
@attr.s(frozen=True)
|
|
142
|
-
class
|
|
146
|
+
class _ParsedItem(object):
|
|
143
147
|
line = attr.ib() # type: LogicalLine
|
|
144
148
|
|
|
145
149
|
def __str__(self):
|
|
@@ -148,7 +152,22 @@ class _ParsedRequirement(object):
|
|
|
148
152
|
|
|
149
153
|
|
|
150
154
|
@attr.s(frozen=True)
|
|
151
|
-
class
|
|
155
|
+
class _Repo(_ParsedItem):
|
|
156
|
+
location = attr.ib() # Text
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
@attr.s(frozen=True)
|
|
160
|
+
class FindLinks(_Repo):
|
|
161
|
+
pass
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
@attr.s(frozen=True)
|
|
165
|
+
class Index(_Repo):
|
|
166
|
+
pass
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
@attr.s(frozen=True)
|
|
170
|
+
class PyPIRequirement(_ParsedItem):
|
|
152
171
|
"""A requirement realized through a package index or find links repository."""
|
|
153
172
|
|
|
154
173
|
requirement = attr.ib() # type: Requirement
|
|
@@ -169,7 +188,7 @@ class PyPIRequirement(_ParsedRequirement):
|
|
|
169
188
|
|
|
170
189
|
|
|
171
190
|
@attr.s(frozen=True)
|
|
172
|
-
class URLRequirement(
|
|
191
|
+
class URLRequirement(_ParsedItem):
|
|
173
192
|
"""A requirement realized through a distribution archive at a fixed URL."""
|
|
174
193
|
|
|
175
194
|
url = attr.ib() # type: ArtifactURL
|
|
@@ -202,7 +221,7 @@ class URLRequirement(_ParsedRequirement):
|
|
|
202
221
|
|
|
203
222
|
|
|
204
223
|
@attr.s(frozen=True)
|
|
205
|
-
class VCSRequirement(
|
|
224
|
+
class VCSRequirement(_ParsedItem):
|
|
206
225
|
"""A requirement realized by building a distribution from sources retrieved from a VCS."""
|
|
207
226
|
|
|
208
227
|
vcs = attr.ib() # type: VCS.Value
|
|
@@ -269,7 +288,7 @@ def parse_requirement_from_dist(
|
|
|
269
288
|
|
|
270
289
|
|
|
271
290
|
@attr.s(frozen=True)
|
|
272
|
-
class LocalProjectRequirement(
|
|
291
|
+
class LocalProjectRequirement(_ParsedItem):
|
|
273
292
|
"""A requirement realized by building a distribution from local sources."""
|
|
274
293
|
|
|
275
294
|
path = attr.ib() # type: str
|
|
@@ -306,7 +325,7 @@ if TYPE_CHECKING:
|
|
|
306
325
|
|
|
307
326
|
|
|
308
327
|
@attr.s(frozen=True)
|
|
309
|
-
class Constraint(
|
|
328
|
+
class Constraint(_ParsedItem):
|
|
310
329
|
requirement = attr.ib() # type: Requirement
|
|
311
330
|
|
|
312
331
|
@property
|
|
@@ -630,11 +649,59 @@ def _get_parameter(line):
|
|
|
630
649
|
return split_line[1]
|
|
631
650
|
|
|
632
651
|
|
|
652
|
+
_REPOS_PARSER = None # type: Optional[ArgumentParser]
|
|
653
|
+
|
|
654
|
+
|
|
655
|
+
def _parse_repos(line):
|
|
656
|
+
# type: (LogicalLine) -> Iterator[Union[FindLinks, Index]]
|
|
657
|
+
|
|
658
|
+
try:
|
|
659
|
+
# The arg-type type ignore is due to Python 2.7 shlex.split not being able to parse unicode
|
|
660
|
+
# strings; but we handle that with a useful error message.
|
|
661
|
+
args = shlex.split(line.processed_text) # type: ignore[arg-type]
|
|
662
|
+
except UnicodeEncodeError as e:
|
|
663
|
+
raise ParseError(
|
|
664
|
+
line,
|
|
665
|
+
"Options line has unicode characters which are not supported under Python {version}: "
|
|
666
|
+
"{err}".format(version=".".join(map(str, sys.version[:2])), err=e),
|
|
667
|
+
)
|
|
668
|
+
|
|
669
|
+
global _REPOS_PARSER
|
|
670
|
+
if _REPOS_PARSER is not None:
|
|
671
|
+
parser = _REPOS_PARSER
|
|
672
|
+
else:
|
|
673
|
+
parser = ArgumentParser()
|
|
674
|
+
# See:
|
|
675
|
+
# + https://pip.pypa.io/en/stable/reference/requirements-file-format/#global-options
|
|
676
|
+
# + https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-f
|
|
677
|
+
# + https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-i
|
|
678
|
+
# + https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-extra-index-url
|
|
679
|
+
parser.add_argument("-f", "--find-links", dest="find_links", action="append", default=[])
|
|
680
|
+
parser.add_argument("-i", "--index-url", dest="index_url")
|
|
681
|
+
parser.add_argument(
|
|
682
|
+
"--extra-index-url", dest="extra_index_urls", action="append", default=[]
|
|
683
|
+
)
|
|
684
|
+
_REPOS_PARSER = parser
|
|
685
|
+
|
|
686
|
+
options, _ = parser.parse_known_args(args)
|
|
687
|
+
|
|
688
|
+
for find_links in OrderedSet(options.find_links): # type: OrderedSet[str]
|
|
689
|
+
yield FindLinks(line, location=find_links)
|
|
690
|
+
|
|
691
|
+
index_locations = OrderedSet() # type: OrderedSet[str]
|
|
692
|
+
if options.index_url:
|
|
693
|
+
index_locations.add(options.index_url)
|
|
694
|
+
index_locations.update(options.extra_index_urls)
|
|
695
|
+
|
|
696
|
+
for index in index_locations:
|
|
697
|
+
yield Index(line, location=index)
|
|
698
|
+
|
|
699
|
+
|
|
633
700
|
def parse_requirements(
|
|
634
701
|
source, # type: Source
|
|
635
702
|
fetcher=None, # type: Optional[URLFetcher]
|
|
636
703
|
):
|
|
637
|
-
# type: (...) -> Iterator[Union[ParsedRequirement, Constraint]]
|
|
704
|
+
# type: (...) -> Iterator[Union[ParsedRequirement, Constraint, FindLinks, Index]]
|
|
638
705
|
|
|
639
706
|
# For the format specification, see:
|
|
640
707
|
# https://pip.pypa.io/en/stable/reference/pip_install/#requirements-file-format
|
|
@@ -686,11 +753,17 @@ def parse_requirements(
|
|
|
686
753
|
yield requirement
|
|
687
754
|
continue
|
|
688
755
|
|
|
689
|
-
# Skip empty lines
|
|
690
|
-
if not processed_text
|
|
691
|
-
|
|
692
|
-
|
|
756
|
+
# Skip empty lines and comment lines.
|
|
757
|
+
if not processed_text:
|
|
758
|
+
continue
|
|
759
|
+
|
|
760
|
+
if processed_text.startswith("-") and not re.match(
|
|
761
|
+
# N.B.: We deal with editable when parsing requirement lines below.
|
|
762
|
+
r"^(?:-e|--editable)\s.*",
|
|
763
|
+
processed_text,
|
|
693
764
|
):
|
|
765
|
+
for repo in _parse_repos(logical_line):
|
|
766
|
+
yield repo
|
|
694
767
|
continue
|
|
695
768
|
|
|
696
769
|
# Only requirement lines remain.
|
|
@@ -721,7 +794,7 @@ def parse_requirement_file(
|
|
|
721
794
|
is_constraints=False, # type: bool
|
|
722
795
|
fetcher=None, # type: Optional[URLFetcher]
|
|
723
796
|
):
|
|
724
|
-
# type: (...) -> Iterator[Union[ParsedRequirement, Constraint]]
|
|
797
|
+
# type: (...) -> Iterator[Union[ParsedRequirement, Constraint, FindLinks, Index]]
|
|
725
798
|
def open_source():
|
|
726
799
|
url = urlparse.urlparse(location)
|
|
727
800
|
if url.scheme and url.netloc:
|
|
@@ -6,12 +6,23 @@ from __future__ import absolute_import
|
|
|
6
6
|
import itertools
|
|
7
7
|
import os
|
|
8
8
|
import re
|
|
9
|
+
from collections import OrderedDict, defaultdict
|
|
9
10
|
|
|
10
11
|
from pex.auth import PasswordEntry
|
|
11
12
|
from pex.compatibility import string
|
|
12
13
|
from pex.dist_metadata import Requirement, RequirementParseError
|
|
13
14
|
from pex.exceptions import production_assert, reportable_unexpected_error_msg
|
|
15
|
+
from pex.fetcher import URLFetcher
|
|
16
|
+
from pex.orderedset import OrderedSet
|
|
14
17
|
from pex.pep_503 import ProjectName
|
|
18
|
+
from pex.requirements import (
|
|
19
|
+
FindLinks,
|
|
20
|
+
Index,
|
|
21
|
+
PyPIRequirement,
|
|
22
|
+
URLRequirement,
|
|
23
|
+
VCSRequirement,
|
|
24
|
+
parse_requirement_file,
|
|
25
|
+
)
|
|
15
26
|
from pex.resolve.target_system import MarkerEnv
|
|
16
27
|
from pex.third_party.packaging.markers import InvalidMarker, Marker
|
|
17
28
|
from pex.typing import TYPE_CHECKING, cast
|
|
@@ -19,7 +30,7 @@ from pex.typing import TYPE_CHECKING, cast
|
|
|
19
30
|
if TYPE_CHECKING:
|
|
20
31
|
# N.B.: The `re.Pattern` type is not available in all Python versions Pex supports.
|
|
21
32
|
from re import Pattern # type: ignore[attr-defined]
|
|
22
|
-
from typing import Any, Dict, Iterable, List, Optional, Tuple, Union
|
|
33
|
+
from typing import Any, DefaultDict, Dict, Iterable, List, Mapping, Optional, Text, Tuple, Union
|
|
23
34
|
|
|
24
35
|
import attr # vendor:skip
|
|
25
36
|
|
|
@@ -183,7 +194,7 @@ class Repo(object):
|
|
|
183
194
|
location=data["location"], scopes=tuple(Scope.parse(scope) for scope in data["scopes"])
|
|
184
195
|
)
|
|
185
196
|
|
|
186
|
-
location = attr.ib() # type:
|
|
197
|
+
location = attr.ib() # type: Text
|
|
187
198
|
scopes = attr.ib(default=()) # type: Tuple[Scope, ...]
|
|
188
199
|
|
|
189
200
|
def as_dict(self):
|
|
@@ -240,8 +251,8 @@ class PackageRepositories(object):
|
|
|
240
251
|
_target_env = attr.ib() # type: Union[Dict[str, str], MarkerEnv]
|
|
241
252
|
_scoped_indexes = attr.ib(default=()) # type: Tuple[Repo, ...]
|
|
242
253
|
_scoped_find_links = attr.ib(default=()) # type: Tuple[Repo, ...]
|
|
243
|
-
global_indexes = attr.ib(default=(Repo(PYPI),)) # type: Tuple[
|
|
244
|
-
global_find_links = attr.ib(default=()) # type: Tuple[
|
|
254
|
+
global_indexes = attr.ib(default=(Repo(PYPI),)) # type: Tuple[Text, ...]
|
|
255
|
+
global_find_links = attr.ib(default=()) # type: Tuple[Text, ...]
|
|
245
256
|
|
|
246
257
|
@property
|
|
247
258
|
def has_scoped_repositories(self):
|
|
@@ -266,7 +277,7 @@ class PackageRepositories(object):
|
|
|
266
277
|
scoped_repos, # type: Iterable[Repo]
|
|
267
278
|
project_name, # type: ProjectName
|
|
268
279
|
):
|
|
269
|
-
# type: (...) -> List[
|
|
280
|
+
# type: (...) -> List[Text]
|
|
270
281
|
return [
|
|
271
282
|
repo.location
|
|
272
283
|
for repo in scoped_repos
|
|
@@ -274,11 +285,11 @@ class PackageRepositories(object):
|
|
|
274
285
|
]
|
|
275
286
|
|
|
276
287
|
def in_scope_indexes(self, project_name):
|
|
277
|
-
# type: (ProjectName) -> List[
|
|
288
|
+
# type: (ProjectName) -> List[Text]
|
|
278
289
|
return self._in_scope_repos(scoped_repos=self._scoped_indexes, project_name=project_name)
|
|
279
290
|
|
|
280
291
|
def in_scope_find_links(self, project_name):
|
|
281
|
-
# type: (ProjectName) -> List[
|
|
292
|
+
# type: (ProjectName) -> List[Text]
|
|
282
293
|
return self._in_scope_repos(scoped_repos=self._scoped_find_links, project_name=project_name)
|
|
283
294
|
|
|
284
295
|
|
|
@@ -289,6 +300,7 @@ class ReposConfiguration(object):
|
|
|
289
300
|
cls,
|
|
290
301
|
indexes=(), # type: Iterable[Repo]
|
|
291
302
|
find_links=(), # type: Iterable[Repo]
|
|
303
|
+
derive_scopes_from_requirements_files=False, # type: bool
|
|
292
304
|
):
|
|
293
305
|
# type: (...) -> ReposConfiguration
|
|
294
306
|
password_entries = []
|
|
@@ -301,20 +313,78 @@ class ReposConfiguration(object):
|
|
|
301
313
|
index_repos=tuple(indexes),
|
|
302
314
|
find_links_repos=tuple(find_links),
|
|
303
315
|
password_entries=tuple(password_entries),
|
|
316
|
+
derive_scopes_from_requirements_files=derive_scopes_from_requirements_files,
|
|
304
317
|
)
|
|
305
318
|
|
|
306
319
|
index_repos = attr.ib(default=(Repo(PYPI),)) # type: Tuple[Repo, ...]
|
|
307
320
|
find_links_repos = attr.ib(default=()) # type: Tuple[Repo, ...]
|
|
308
321
|
password_entries = attr.ib(default=()) # type: Tuple[PasswordEntry, ...]
|
|
322
|
+
derive_scopes_from_requirements_files = attr.ib(default=False) # type: bool
|
|
323
|
+
|
|
324
|
+
def with_contained_repos(
|
|
325
|
+
self,
|
|
326
|
+
requirement_files=None, # type: Optional[Iterable[Text]]
|
|
327
|
+
fetcher=None, # type: Optional[URLFetcher]
|
|
328
|
+
):
|
|
329
|
+
# type: (...) -> ReposConfiguration
|
|
330
|
+
|
|
331
|
+
if not requirement_files:
|
|
332
|
+
return self
|
|
333
|
+
|
|
334
|
+
indexes_by_source = OrderedDict() # type: OrderedDict[Text, OrderedSet[Text]]
|
|
335
|
+
find_links_by_source = OrderedDict() # type: OrderedDict[Text, OrderedSet[Text]]
|
|
336
|
+
scopes_by_source = defaultdict(OrderedSet) # type: DefaultDict[Text, OrderedSet[Scope]]
|
|
337
|
+
for item in itertools.chain.from_iterable(
|
|
338
|
+
parse_requirement_file(requirement_file, fetcher=fetcher)
|
|
339
|
+
for requirement_file in requirement_files
|
|
340
|
+
):
|
|
341
|
+
if self.derive_scopes_from_requirements_files and isinstance(
|
|
342
|
+
item, (PyPIRequirement, URLRequirement, VCSRequirement)
|
|
343
|
+
):
|
|
344
|
+
scopes_by_source[item.line.source].add(
|
|
345
|
+
Scope(project=item.requirement.project_name, marker=item.requirement.marker)
|
|
346
|
+
)
|
|
347
|
+
elif isinstance(item, FindLinks):
|
|
348
|
+
find_links_by_source.setdefault(item.line.source, OrderedSet()).add(item.location)
|
|
349
|
+
elif isinstance(item, Index):
|
|
350
|
+
indexes_by_source.setdefault(item.line.source, OrderedSet()).add(item.location)
|
|
351
|
+
|
|
352
|
+
if not indexes_by_source and not find_links_by_source:
|
|
353
|
+
return self
|
|
354
|
+
|
|
355
|
+
def merge_scopes(
|
|
356
|
+
repos, # type: Iterable[Repo]
|
|
357
|
+
locations_by_source, # type: Mapping[Text, Iterable[Text]]
|
|
358
|
+
):
|
|
359
|
+
scopes_by_location = OrderedDict(
|
|
360
|
+
(repo.location, OrderedSet(repo.scopes)) for repo in repos
|
|
361
|
+
)
|
|
362
|
+
for source, locations in locations_by_source.items():
|
|
363
|
+
for location in locations:
|
|
364
|
+
scopes_by_location.setdefault(location, OrderedSet()).update(
|
|
365
|
+
scopes_by_source[source]
|
|
366
|
+
)
|
|
367
|
+
return tuple(
|
|
368
|
+
Repo(location=location, scopes=tuple(scopes))
|
|
369
|
+
for location, scopes in scopes_by_location.items()
|
|
370
|
+
)
|
|
371
|
+
|
|
372
|
+
return attr.evolve(
|
|
373
|
+
self,
|
|
374
|
+
index_repos=merge_scopes(repos=self.index_repos, locations_by_source=indexes_by_source),
|
|
375
|
+
find_links_repos=merge_scopes(
|
|
376
|
+
repos=self.find_links_repos, locations_by_source=find_links_by_source
|
|
377
|
+
),
|
|
378
|
+
)
|
|
309
379
|
|
|
310
380
|
@property
|
|
311
381
|
def indexes(self):
|
|
312
|
-
# type: () -> Tuple[
|
|
382
|
+
# type: () -> Tuple[Text, ...]
|
|
313
383
|
return tuple(repo.location for repo in self.index_repos if not repo.scopes)
|
|
314
384
|
|
|
315
385
|
@property
|
|
316
386
|
def find_links(self):
|
|
317
|
-
# type: () -> Tuple[
|
|
387
|
+
# type: () -> Tuple[Text, ...]
|
|
318
388
|
return tuple(repo.location for repo in self.find_links_repos if not repo.scopes)
|
|
319
389
|
|
|
320
390
|
def scoped(self, target_env):
|
|
@@ -5,7 +5,15 @@ from __future__ import absolute_import
|
|
|
5
5
|
|
|
6
6
|
from pex.fetcher import URLFetcher
|
|
7
7
|
from pex.network_configuration import NetworkConfiguration
|
|
8
|
-
from pex.requirements import
|
|
8
|
+
from pex.requirements import (
|
|
9
|
+
Constraint,
|
|
10
|
+
LocalProjectRequirement,
|
|
11
|
+
PyPIRequirement,
|
|
12
|
+
URLRequirement,
|
|
13
|
+
VCSRequirement,
|
|
14
|
+
parse_requirement_file,
|
|
15
|
+
parse_requirement_strings,
|
|
16
|
+
)
|
|
9
17
|
from pex.typing import TYPE_CHECKING
|
|
10
18
|
|
|
11
19
|
if TYPE_CHECKING:
|
|
@@ -37,7 +45,10 @@ class RequirementConfiguration(object):
|
|
|
37
45
|
for requirement_or_constraint in parse_requirement_file(
|
|
38
46
|
requirement_file, is_constraints=False, fetcher=fetcher
|
|
39
47
|
)
|
|
40
|
-
if
|
|
48
|
+
if isinstance(
|
|
49
|
+
requirement_or_constraint,
|
|
50
|
+
(PyPIRequirement, URLRequirement, VCSRequirement, LocalProjectRequirement),
|
|
51
|
+
)
|
|
41
52
|
)
|
|
42
53
|
return parsed_requirements
|
|
43
54
|
|
pex/resolve/resolver_options.py
CHANGED
|
@@ -574,6 +574,17 @@ def register_repos_options(parser):
|
|
|
574
574
|
"in a scope, you can use a regex instead."
|
|
575
575
|
),
|
|
576
576
|
)
|
|
577
|
+
parser.add_argument(
|
|
578
|
+
"--derive-sources-from-requirements-files",
|
|
579
|
+
dest="derive_scopes_from_requirements_files",
|
|
580
|
+
action=HandleBoolAction,
|
|
581
|
+
default=False,
|
|
582
|
+
help=(
|
|
583
|
+
"If any requirements files are specified that contain `-f` / `--find-links`, `-i` / "
|
|
584
|
+
"`--index-url`, or `--extra-index-url` options, automatically map these repos as the "
|
|
585
|
+
"`--source` for the requirements (if any) declared in that same requirements file."
|
|
586
|
+
),
|
|
587
|
+
)
|
|
577
588
|
|
|
578
589
|
|
|
579
590
|
def register_network_options(parser):
|
|
@@ -871,6 +882,7 @@ def create_repos_configuration(options):
|
|
|
871
882
|
return ReposConfiguration.create(
|
|
872
883
|
indexes=tuple(indexes),
|
|
873
884
|
find_links=tuple(Repo(find_links_repo) for find_links_repo in options.find_links),
|
|
885
|
+
derive_scopes_from_requirements_files=options.derive_scopes_from_requirements_files,
|
|
874
886
|
)
|
|
875
887
|
|
|
876
888
|
parsed_indexes = _parse_package_repositories("index", scopes_by_name, options.indexes)
|
|
@@ -890,7 +902,9 @@ def create_repos_configuration(options):
|
|
|
890
902
|
|
|
891
903
|
indexes.update(parsed_indexes.values())
|
|
892
904
|
return ReposConfiguration.create(
|
|
893
|
-
indexes=tuple(indexes),
|
|
905
|
+
indexes=tuple(indexes),
|
|
906
|
+
find_links=tuple(parsed_find_links.values()),
|
|
907
|
+
derive_scopes_from_requirements_files=options.derive_scopes_from_requirements_files,
|
|
894
908
|
)
|
|
895
909
|
|
|
896
910
|
|
pex/version.py
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pex
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.58.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.58.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.58.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.58.1
|
|
13
13
|
Keywords: package,executable,virtualenv,lock,freeze
|
|
14
14
|
Classifier: Development Status :: 5 - Production/Stable
|
|
15
15
|
Classifier: Intended Audience :: Developers
|
|
@@ -5,7 +5,7 @@ pex/artifact_url.py,sha256=U9hRE-N80hYTGBR88kh_0R9aNLkUUXqSdufBvSFTf8s,8029
|
|
|
5
5
|
pex/atexit.py,sha256=pZIFdG1gEW_zWz9Vov61SnsB2TH0knSAF2EXDrT_tIA,1821
|
|
6
6
|
pex/atomic_directory.py,sha256=9JxKfgp16vTMnXGinivU1NotIDWR1E94jKmw0VTEFKY,12771
|
|
7
7
|
pex/attrs.py,sha256=MGqTSvDukv93di0GCP3B13-ByX7HsPg42VZzGU2eKow,459
|
|
8
|
-
pex/auth.py,sha256
|
|
8
|
+
pex/auth.py,sha256=USbYTSbEuq4jpH3v9BZ7XypW11ASiwXDWn7UzDVoMoo,5875
|
|
9
9
|
pex/bootstrap.py,sha256=XCmK2X5vdjJye4s6OUbE4nxWgZSM5_xT-Se1bMHKwoE,5462
|
|
10
10
|
pex/cli_util.py,sha256=F67UHGT5xBGFQBy2D-mxxMBCJ2V_gDtekjWni9u_J84,1192
|
|
11
11
|
pex/common.py,sha256=TukYFf-td_Gi0CRzWwiV8KICEDa1LybN03bi8aESBXw,32159
|
|
@@ -53,7 +53,7 @@ pex/platforms.py,sha256=_8FAoXWTjCFOUmM02nFtduwp2NCIWC6QmBAs3CE6H5w,8319
|
|
|
53
53
|
pex/pth.py,sha256=YGiWmW99vPvPm5-iU_Kbvbu1NTtJyyTp32ilHyAJ_VQ,3402
|
|
54
54
|
pex/pyenv.py,sha256=O5_Ec26J8GQpa5Xt_TtSB0A9rV62vYgciIwBlW4aiZ8,9276
|
|
55
55
|
pex/rank.py,sha256=dNFi6Y7bBe8gwcKSon81EOs9Jw4uhUzoHgRnIDYV8lU,3901
|
|
56
|
-
pex/requirements.py,sha256=
|
|
56
|
+
pex/requirements.py,sha256=NpseoFVrUfTDSd0JAoOnVstbvYC140ecDgiHeb39b3s,29007
|
|
57
57
|
pex/resolver.py,sha256=rCHyQXTksLU5oYkhONS8lP3_hunOQuP7UQnm1UkpClI,68806
|
|
58
58
|
pex/result.py,sha256=VTE_n-IffLf-FD4ENNbRvq_ebahh-IDYAna1y5Iw1WI,3090
|
|
59
59
|
pex/sh_boot.py,sha256=IBpqPHnfYlImx8SMMYeeXD7BEmqnlFVAxmArieNMtU0,11217
|
|
@@ -67,7 +67,7 @@ pex/tracer.py,sha256=nob_hNooCYWZev7_ABhAVyO4HBZ8Q_OajQUvNnr82Rc,4481
|
|
|
67
67
|
pex/typing.py,sha256=J1JTB1V48zIWmhWRHEMDHWMaFPMzsEonWJ9s57Ev43Q,3050
|
|
68
68
|
pex/util.py,sha256=TxTxpdDmrDTLVXt9e2XuRq9c3N6jRYNCce87QBFkCVo,5491
|
|
69
69
|
pex/variables.py,sha256=h3-JeMzXfRzEsWqTYsoU-6vt5W4Kr0VvbfSDAYtuZOU,34728
|
|
70
|
-
pex/version.py,sha256=
|
|
70
|
+
pex/version.py,sha256=3mSxWXjMWE_n5e-iPcxpzBNLcMS-0xv7ZU-9z_on1UQ,131
|
|
71
71
|
pex/wheel.py,sha256=lSVHtgWKcAhnTBL9q4oUQ5a4clLo0hSMCk18eaJZQpM,5531
|
|
72
72
|
pex/ziputils.py,sha256=thUrto9vEdG9mFCIJ59Js3d1y6bSfFdl7pb1lSb7KAQ,9620
|
|
73
73
|
pex/bin/__init__.py,sha256=Kb2dGrZYVtb0cd9ngKHuLShndNU1GSWdeDzN-u_L6Io,107
|
|
@@ -77,7 +77,7 @@ pex/build_backend/configuration.py,sha256=s95XQMc2P23GWrS8z8O6pyfUDYNlFlBkuegqTE
|
|
|
77
77
|
pex/build_backend/pylock.py,sha256=xY9OO6pNPneqEQAxDTwHH5XNbU_aoM6MACuPOiT7jo0,8318
|
|
78
78
|
pex/build_backend/wrap.py,sha256=DH1jJWQ9g2FGdLEvLLMny9koYEP0_9O_138SMVTB6YM,5504
|
|
79
79
|
pex/build_system/__init__.py,sha256=JYbpW71Z5Jkft7b5VSMg2VQJUNWzRDXji-2DFyXUvmQ,564
|
|
80
|
-
pex/build_system/pep_517.py,sha256=
|
|
80
|
+
pex/build_system/pep_517.py,sha256=ZGeDso2Pmv2JjB0dMBUcXHlCMhram7QhJneYskXtH4U,10458
|
|
81
81
|
pex/build_system/pep_518.py,sha256=LMgvpHqcifQAHe6jgGBEGgPolMIk7BBcKBunN5u7jr4,8355
|
|
82
82
|
pex/cache/__init__.py,sha256=yOeHhVmwd_TbkV62FglXwYaf6Hn2SpBbS9fGfHBRjx0,107
|
|
83
83
|
pex/cache/access.py,sha256=_2Iq6NC0o-0IIjgljiOq1ajugiMUL7-V9NdrSXkkJWw,3847
|
|
@@ -110,33 +110,33 @@ pex/distutils/commands/__init__.py,sha256=uASB5OU996Jax-h3kMmeZjG5Jdy9BYDR6A1swk
|
|
|
110
110
|
pex/distutils/commands/bdist_pex.py,sha256=SLwBj0ALpArhKQT94X0niKWfyLaySjOZuZrGXG332K0,5117
|
|
111
111
|
pex/docs/__init__.py,sha256=u9hPOij1fpo1yPBLTQTdSCnSIUuRCSXHomCkEAaCciA,439
|
|
112
112
|
pex/docs/command.py,sha256=uQyD8bO_DBNIlkPd6F7SFZbZUVh1Xn6gT8OmVxP4qxk,3046
|
|
113
|
-
pex/docs/html/buildingpex.html,sha256=
|
|
114
|
-
pex/docs/html/genindex.html,sha256=
|
|
115
|
-
pex/docs/html/index.html,sha256=
|
|
116
|
-
pex/docs/html/recipes.html,sha256=
|
|
117
|
-
pex/docs/html/scie.html,sha256
|
|
118
|
-
pex/docs/html/search.html,sha256=
|
|
113
|
+
pex/docs/html/buildingpex.html,sha256=qV5rRBSVWMJYbx-8QJcCvJliU-8HWdvLXn-wxiizL0o,57743
|
|
114
|
+
pex/docs/html/genindex.html,sha256=HQnto7SE3_OqMrUZenK_c1Zu_WYOENqTxZAcZFqRB6E,17530
|
|
115
|
+
pex/docs/html/index.html,sha256=p-bRWrAWMI2sg6JeedAUb7ThfrqPhzAQnE-Ycz-LCHg,25362
|
|
116
|
+
pex/docs/html/recipes.html,sha256=xTiZ9KEKoHkLQdKzSkDMd1FP7CA_xYC91bxnzZXYNMc,35528
|
|
117
|
+
pex/docs/html/scie.html,sha256=8trlEYT9WHn43bJM4mzEhPiferGhiA8G_WHXQgNKPEc,62518
|
|
118
|
+
pex/docs/html/search.html,sha256=IIM-l58amBu7uOr3u6ch3WwGw0c4TsiWI2LhhSJ8kA8,18501
|
|
119
119
|
pex/docs/html/searchindex.js,sha256=R_L6Oveik_wlK5CmaE7YwRvmu81r6fd7jtnZUjfk1sA,18009
|
|
120
|
-
pex/docs/html/whatispex.html,sha256=
|
|
121
|
-
pex/docs/html/_pagefind/pagefind-entry.json,sha256=
|
|
120
|
+
pex/docs/html/whatispex.html,sha256=7jm5bXIW2XGYaJZsBsrSDFjPotWA2uiGhJbkuUJN42Y,23090
|
|
121
|
+
pex/docs/html/_pagefind/pagefind-entry.json,sha256=krmjE-XnQvvWAcW0PXbLioeOJWxcRHIKq7MYzWK00NY,90
|
|
122
122
|
pex/docs/html/_pagefind/pagefind-highlight.js,sha256=5hRyi7gOMY9tlTe-tbmDrVJpoxbnYxhbJeoGwtmCfXA,43944
|
|
123
123
|
pex/docs/html/_pagefind/pagefind-modular-ui.css,sha256=ZTqynk3lYp9t319vzfXSs-tTmowH__ila4ziFWpXB4g,7336
|
|
124
124
|
pex/docs/html/_pagefind/pagefind-modular-ui.js,sha256=-DCEOJ2cInrvjEGZFxCuYy81EMWbKHhMu4wivlJmUzE,14486
|
|
125
125
|
pex/docs/html/_pagefind/pagefind-ui.css,sha256=GL61nVezuyVA4ynNRJejhEwUBxhBtx4rDYVlAgI_W1U,14486
|
|
126
126
|
pex/docs/html/_pagefind/pagefind-ui.js,sha256=WQ3yec_CMkBKswl16Ig5N_zJzeCgL4z9y344TcJeKAQ,78367
|
|
127
|
-
pex/docs/html/_pagefind/pagefind.
|
|
127
|
+
pex/docs/html/_pagefind/pagefind.en_bc4997bc6d.pf_meta,sha256=mDV2Ugof_qo0k15WUwYTyZKinCKiBqvi5wIB54Tm28Y,150
|
|
128
128
|
pex/docs/html/_pagefind/pagefind.js,sha256=Q-4jKyPif6awDU9x8IoWXTWoJJR1JZicegUYQ-QI4MA,32912
|
|
129
129
|
pex/docs/html/_pagefind/wasm.en.pagefind,sha256=mG0TKIE7WXynsyg-tpiMZiVG2Hwebbt2UqFqlqdTTsE,70873
|
|
130
130
|
pex/docs/html/_pagefind/wasm.unknown.pagefind,sha256=eAREknqQnc_y96pbl8eYz9zqfUXsqe64B7HwrQE2SkY,67202
|
|
131
|
-
pex/docs/html/_pagefind/fragment/
|
|
132
|
-
pex/docs/html/_pagefind/fragment/
|
|
133
|
-
pex/docs/html/_pagefind/fragment/
|
|
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/index/
|
|
131
|
+
pex/docs/html/_pagefind/fragment/en_1fd6283.pf_fragment,sha256=XJgjXqGIfVPvah7Z31ipxw8HERoAKY7BK-nUTpkTlns,3679
|
|
132
|
+
pex/docs/html/_pagefind/fragment/en_3981384.pf_fragment,sha256=4GmV6XLt7TgVQv3Krq3vQF5GuM7YP6ODLdJdVQ2Mw1Y,1172
|
|
133
|
+
pex/docs/html/_pagefind/fragment/en_5b3a816.pf_fragment,sha256=tuZcvsiYOK79Uz0hurP7qyRpSACQW3HMsa_9LOZQ1l0,4884
|
|
134
|
+
pex/docs/html/_pagefind/fragment/en_668cbbe.pf_fragment,sha256=lsOOieX8IeB_03pGex7NaxK3dm_K-k1ncVw5vz3s1wQ,6845
|
|
135
|
+
pex/docs/html/_pagefind/fragment/en_69b66dc.pf_fragment,sha256=hH2bf_2Ris36H9nUhB4Ilj2IPmlXQowFp_qOrrhCzWk,392
|
|
136
|
+
pex/docs/html/_pagefind/fragment/en_93e5ea3.pf_fragment,sha256=RgTvbR6eiZ9NtRTGWBCiMzjHSu7wLJ26FlYvoPFuReQ,1188
|
|
137
|
+
pex/docs/html/_pagefind/fragment/en_9ec1cdb.pf_fragment,sha256=UWy1TNqG7mskUxVh7UPjsMQPNuAsZgredbZ_QflI1No,3054
|
|
138
|
+
pex/docs/html/_pagefind/fragment/en_edf644d.pf_fragment,sha256=3FNmGoQhcJ7N0klAIcohSfEJt2MKUDo-xXCK-M67VHg,402
|
|
139
|
+
pex/docs/html/_pagefind/index/en_b7cb935.pf_index,sha256=4OUJgNA0w2mM4MVGkcjxwSxzLNnUB7hiwuSRxX8qGB4,29071
|
|
140
140
|
pex/docs/html/_sources/buildingpex.rst.txt,sha256=87P3ZO871MILL9pmpDM8_M7_YV1z5HjTYa9m8yuxTa4,19138
|
|
141
141
|
pex/docs/html/_sources/index.rst.txt,sha256=vWt1s6dirYeR-9mFJY1SClwWvbWqIqJSFCAF1CdZojc,1468
|
|
142
142
|
pex/docs/html/_sources/recipes.rst.txt,sha256=kerzvp8_t5io6eGl3YJODtNBQy7GmY2AA6RHaij9C-g,6958
|
|
@@ -146,7 +146,7 @@ pex/docs/html/_sources/api/vars.md.txt,sha256=C9gu5czyB-g788xRfYKF8P176ew_q97X6z
|
|
|
146
146
|
pex/docs/html/_static/basic.css,sha256=ZW_xus1vJg_H1xuX-cLx_L9pLchL9GnNlSA078ue7-0,14685
|
|
147
147
|
pex/docs/html/_static/debug.css,sha256=DQXNnnnVMjQwRmfAjwKXHeYZbA_8pZPDkDs2Z7QFWtY,1266
|
|
148
148
|
pex/docs/html/_static/doctools.js,sha256=KZLAnfkYJqjTPjtItkXud-RXrc98cS13aoFOHixEi0M,4322
|
|
149
|
-
pex/docs/html/_static/documentation_options.js,sha256=
|
|
149
|
+
pex/docs/html/_static/documentation_options.js,sha256=pHkxuYTmix91_abPXHV7GgGmK4z51aEo_UTWjbP5yWU,329
|
|
150
150
|
pex/docs/html/_static/file.png,sha256=XEvJoWrr84xLlQ9ZuOUByjZJUyjLnrYiIYvOkGSjXj4,286
|
|
151
151
|
pex/docs/html/_static/language_data.js,sha256=O8MRVjt_xegPyrL4Ypd0vzy2swICAA3zbf-OaVqQI7c,4598
|
|
152
152
|
pex/docs/html/_static/minus.png,sha256=R-f8UNs2mfHKQc6aL_ogLADF0dUYDFX2K6hZsb1swAg,90
|
|
@@ -166,7 +166,7 @@ pex/docs/html/_static/styles/furo-extensions.css,sha256=PSsCB3EaBzE9-2yLJyKV9fkx
|
|
|
166
166
|
pex/docs/html/_static/styles/furo-extensions.css.map,sha256=CzW267gfKqH8ruMlwJbWg-MsGAipIgZwoaP4gwDGkVw,7762
|
|
167
167
|
pex/docs/html/_static/styles/furo.css,sha256=_VadhXUHMzTBCFYkutwKheVkdQlyNZJYRa8uhVGcpZ4,51074
|
|
168
168
|
pex/docs/html/_static/styles/furo.css.map,sha256=fsUcXMqaSwEFTorfGfQjJ8xnUzkkWIjGkGfAgxKj5lA,76865
|
|
169
|
-
pex/docs/html/api/vars.html,sha256=
|
|
169
|
+
pex/docs/html/api/vars.html,sha256=tyCBeA2MjpRqkdm_V_SvLoK4Q4JS9WqNtnhnHwfbONw,35237
|
|
170
170
|
pex/fs/__init__.py,sha256=ues2bnsufy1lYRyoWsiP-G4kuPrV-tXaZ0x-HFJFpwY,3605
|
|
171
171
|
pex/fs/_posix.py,sha256=p-VkjEfRNXduBmkxcuEXWM1g6y6xrkufSYzEy93tqjA,1275
|
|
172
172
|
pex/fs/_windows.py,sha256=apacgHpxNutF5HkU6cYOLHq7yqaijRMsFBdsdKSviDo,3304
|
|
@@ -179,7 +179,7 @@ pex/pip/installation.py,sha256=xxME2rUG4ODUQ--AsdRRdzNWyWfEphA2G09oMaYWNdI,21306
|
|
|
179
179
|
pex/pip/local_project.py,sha256=0HsnUgb0d1XX1TokVogF1xV-pTFNuBLDG-7K2j5VUVI,2040
|
|
180
180
|
pex/pip/log_analyzer.py,sha256=YLecIWrjTBvDZA_OwvQlcR1gf6-rI_eBt_LFZTA2E-U,4362
|
|
181
181
|
pex/pip/tailer.py,sha256=af7yJ1rxvtTltno1BEVgJ6lf1C0PPnCzCs6CWto7Y9s,4445
|
|
182
|
-
pex/pip/tool.py,sha256=
|
|
182
|
+
pex/pip/tool.py,sha256=pSymcCdNKs9A3DcU62Cd2wMYi1AqvnAYj7eaNMEbnxg,34840
|
|
183
183
|
pex/pip/vcs.py,sha256=PWrS6pR2vm6rf08HCws4EVwX3kHAOyarMWj_KznoMoM,4041
|
|
184
184
|
pex/pip/version.py,sha256=NADXFCx9g8D_QugtN7a6lTo_6YuBEpdicJvA8t7Mps4,12644
|
|
185
185
|
pex/pip/dependencies/__init__.py,sha256=Hwrin59pqb2QPU4ysCPUhqzfsE1PHx56a-ED39eEV0Q,5126
|
|
@@ -204,16 +204,16 @@ pex/resolve/lock_resolver.py,sha256=b6UoqaXPNdWEt1JC8S6HSc4el5ows6kmIa5T87OsAm0,
|
|
|
204
204
|
pex/resolve/locked_resolve.py,sha256=Vx9JQPe5SUW3A0IZ17pdd7Lhl8b6xa77nnGiBpJlfL0,40561
|
|
205
205
|
pex/resolve/locker.py,sha256=NnSs60GxCVFyuxc5w-st4tzkC2xhYmJcxNUeRGp_UDQ,27049
|
|
206
206
|
pex/resolve/locker_patches.py,sha256=t_30hjSYG570UJHgpf7i1L5ssvi1LZ2YbM4iHd44V6s,11294
|
|
207
|
-
pex/resolve/package_repository.py,sha256=
|
|
207
|
+
pex/resolve/package_repository.py,sha256=xMU9aTxojS2sNmWp03jfMBTIGhq3eqNuNOacl8BiiGY,15123
|
|
208
208
|
pex/resolve/path_mappings.py,sha256=d6JVzD0K342ELz3O8AcsaXoikLDF3xYrgbXkixMmf3Q,2073
|
|
209
209
|
pex/resolve/pex_repository_resolver.py,sha256=xXsDpecTaBj06HY81Y6PNQKVKicjiLnKUlQvjC0jzXk,5528
|
|
210
210
|
pex/resolve/pre_resolved_resolver.py,sha256=SVafV5U4TSkolV2mqfte6QX6VnBgTTlQ9ZMoY83KOTk,9943
|
|
211
211
|
pex/resolve/project.py,sha256=BYy1m8-jUsiaBR1DF3eJiqpqvdqrzB-cQDPvcMD2v-0,14923
|
|
212
|
-
pex/resolve/requirement_configuration.py,sha256=
|
|
212
|
+
pex/resolve/requirement_configuration.py,sha256=kK_si5GsaZUlaQMrwq6SWauk-0nWnwEbeeJB4V1qzfI,2891
|
|
213
213
|
pex/resolve/requirement_options.py,sha256=4E5e_81ANZMg3-a1zYnJ--rixyqaEJ49197GjB3AYbA,2288
|
|
214
214
|
pex/resolve/resolved_requirement.py,sha256=78dn81rEqnbkbhR9C6rAh_rTfQTLq-zUaZZVh9Z7ZAQ,2480
|
|
215
215
|
pex/resolve/resolver_configuration.py,sha256=E7bkHBapJCzfFS5mjepkbA_k7CRB70GZy1cswzgHixY,9266
|
|
216
|
-
pex/resolve/resolver_options.py,sha256=
|
|
216
|
+
pex/resolve/resolver_options.py,sha256=Cq7JO6C9YPb1VSLqNKFTIcSIqtsZSIldX8N2j2YRbAU,40742
|
|
217
217
|
pex/resolve/resolvers.py,sha256=gLulbbaBYhh_kGsKjiP1y43OHIb5PzfpRqf2jw6b6vc,10012
|
|
218
218
|
pex/resolve/script_metadata.py,sha256=6PdrBvUmKQGdTIPHfE-F07460drqjQB_HuBgz_35ql0,6903
|
|
219
219
|
pex/resolve/target_configuration.py,sha256=FFrVHKgceCMlse2xOgxTtdnQ7ENw3A59t4IId0F1GDw,10349
|
|
@@ -968,10 +968,10 @@ pex/windows/stubs/uv-trampoline-aarch64-console.exe,sha256=1S2aM-6CV7rKz-3ncM5X7
|
|
|
968
968
|
pex/windows/stubs/uv-trampoline-aarch64-gui.exe,sha256=mb8x1FpyH-wy11X5YgWfqh_VUwBb62M4Zf9aFr5V4EE,40448
|
|
969
969
|
pex/windows/stubs/uv-trampoline-x86_64-console.exe,sha256=nLopBrlCMMFjkKVRlY7Ke2zFGpQOyF5mSlLs0d7-HRQ,40960
|
|
970
970
|
pex/windows/stubs/uv-trampoline-x86_64-gui.exe,sha256=icnp1oXrOZpc-dHTGvDbTHjr-D8M0eamvRrC9bPI_KI,41984
|
|
971
|
-
pex-2.
|
|
972
|
-
pex-2.
|
|
973
|
-
pex-2.
|
|
974
|
-
pex-2.
|
|
975
|
-
pex-2.
|
|
976
|
-
pex-2.
|
|
977
|
-
pex-2.
|
|
971
|
+
pex-2.58.1.dist-info/METADATA,sha256=re_QwGkd88xKULg9V7GiTQaEIYRpNfbhfeP8VnoijA4,7425
|
|
972
|
+
pex-2.58.1.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
|
|
973
|
+
pex-2.58.1.dist-info/entry_points.txt,sha256=LD9tcxNxdsVLeIF6zR7dyH1vgo2eD9a-05TC1UraGMQ,174
|
|
974
|
+
pex-2.58.1.dist-info/top_level.txt,sha256=HlafJUPu7mfjxv3SDH-RbkxsHOWSVbPXTEBC1hzonpM,4
|
|
975
|
+
pex-2.58.1.dist-info/licenses/LICENSE,sha256=bcDgaNzzpbyOBUIFuFt3IOHUkmW7xkv1FdLPeRl99po,11323
|
|
976
|
+
pex-2.58.1.dist-info/pylock/pylock.toml,sha256=ar9a6_myHcpeU4Ttsts2XQ15x6vs5aqDzjlRUATZHoI,7151
|
|
977
|
+
pex-2.58.1.dist-info/RECORD,,
|
|
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
|