pex 2.61.1__py2.py3-none-any.whl → 2.62.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/docs/html/_pagefind/fragment/en_1bbeb07.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/{en_bf32fcd.pf_fragment → en_1befd43.pf_fragment} +0 -0
- pex/docs/html/_pagefind/fragment/en_45eea4b.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/{en_c9714ee.pf_fragment → en_7822de6.pf_fragment} +0 -0
- pex/docs/html/_pagefind/fragment/en_87f76ba.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/{en_4695b51.pf_fragment → en_a89f2ec.pf_fragment} +0 -0
- pex/docs/html/_pagefind/fragment/{en_57f2ab1.pf_fragment → en_c2a647e.pf_fragment} +0 -0
- pex/docs/html/_pagefind/fragment/en_d2f2c1b.pf_fragment +0 -0
- pex/docs/html/_pagefind/index/en_31a0754.pf_index +0 -0
- pex/docs/html/_pagefind/pagefind-entry.json +1 -1
- pex/docs/html/_pagefind/pagefind.en_32e8257caf.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/pep_427.py +23 -2
- pex/resolve/locker.py +6 -51
- pex/resolve/locker_patches.py +123 -209
- pex/resolve/lockfile/create.py +9 -10
- pex/resolve/lockfile/targets.py +292 -26
- pex/resolve/requirement_configuration.py +15 -8
- pex/resolve/target_system.py +512 -119
- pex/resolver.py +181 -90
- pex/vendor/__main__.py +2 -0
- pex/venv/venv_pex.py +1 -1
- pex/version.py +1 -1
- {pex-2.61.1.dist-info → pex-2.62.1.dist-info}/METADATA +4 -4
- {pex-2.61.1.dist-info → pex-2.62.1.dist-info}/RECORD +38 -38
- pex/docs/html/_pagefind/fragment/en_245699a.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_aefc110.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_b7fad62.pf_fragment +0 -0
- pex/docs/html/_pagefind/fragment/en_e6c0aae.pf_fragment +0 -0
- pex/docs/html/_pagefind/index/en_7e57d09.pf_index +0 -0
- pex/docs/html/_pagefind/pagefind.en_c578c4b677.pf_meta +0 -0
- {pex-2.61.1.dist-info → pex-2.62.1.dist-info}/WHEEL +0 -0
- {pex-2.61.1.dist-info → pex-2.62.1.dist-info}/entry_points.txt +0 -0
- {pex-2.61.1.dist-info → pex-2.62.1.dist-info}/licenses/LICENSE +0 -0
- {pex-2.61.1.dist-info → pex-2.62.1.dist-info}/pylock/pylock.toml +0 -0
- {pex-2.61.1.dist-info → pex-2.62.1.dist-info}/top_level.txt +0 -0
pex/resolver.py
CHANGED
|
@@ -150,9 +150,9 @@ class DownloadTarget(object):
|
|
|
150
150
|
return self.target.id
|
|
151
151
|
|
|
152
152
|
|
|
153
|
-
def
|
|
154
|
-
# type: (Optional[Iterable[
|
|
155
|
-
return tuple(OrderedSet(
|
|
153
|
+
def _uniqued_download_requests(requests=None):
|
|
154
|
+
# type: (Optional[Iterable[DownloadRequest]]) -> Tuple[DownloadRequest, ...]
|
|
155
|
+
return tuple(OrderedSet(requests)) if requests is not None else ()
|
|
156
156
|
|
|
157
157
|
|
|
158
158
|
@attr.s(frozen=True)
|
|
@@ -239,12 +239,9 @@ class PipLogManager(object):
|
|
|
239
239
|
|
|
240
240
|
|
|
241
241
|
@attr.s(frozen=True)
|
|
242
|
-
class
|
|
243
|
-
|
|
242
|
+
class _DownloadSession(object):
|
|
243
|
+
requests = attr.ib(converter=_uniqued_download_requests) # type: Tuple[DownloadRequest, ...]
|
|
244
244
|
direct_requirements = attr.ib() # type: Iterable[ParsedRequirement]
|
|
245
|
-
requirements = attr.ib(default=None) # type: Optional[Iterable[str]]
|
|
246
|
-
requirement_files = attr.ib(default=None) # type: Optional[Iterable[str]]
|
|
247
|
-
constraint_files = attr.ib(default=None) # type: Optional[Iterable[str]]
|
|
248
245
|
allow_prereleases = attr.ib(default=False) # type: bool
|
|
249
246
|
transitive = attr.ib(default=True) # type: bool
|
|
250
247
|
package_index_configuration = attr.ib(default=None) # type: Optional[PackageIndexConfiguration]
|
|
@@ -261,9 +258,9 @@ class DownloadRequest(object):
|
|
|
261
258
|
# type: () -> Iterator[BuildRequest]
|
|
262
259
|
for requirement in self.direct_requirements:
|
|
263
260
|
if isinstance(requirement, LocalProjectRequirement):
|
|
264
|
-
for
|
|
261
|
+
for request in self.requests:
|
|
265
262
|
yield BuildRequest.for_directory(
|
|
266
|
-
target=
|
|
263
|
+
target=request.target,
|
|
267
264
|
source_path=requirement.path,
|
|
268
265
|
resolver=self.resolver,
|
|
269
266
|
pip_version=self.pip_version,
|
|
@@ -271,7 +268,7 @@ class DownloadRequest(object):
|
|
|
271
268
|
|
|
272
269
|
def download_distributions(self, dest=None, max_parallel_jobs=None):
|
|
273
270
|
# type: (...) -> List[DownloadResult]
|
|
274
|
-
if not self.
|
|
271
|
+
if not self.requests or not any(request.has_requirements for request in self.requests):
|
|
275
272
|
# Nothing to resolve.
|
|
276
273
|
return []
|
|
277
274
|
|
|
@@ -279,48 +276,32 @@ class DownloadRequest(object):
|
|
|
279
276
|
prefix="resolver_download.", dir=safe_mkdir(CacheDir.DOWNLOADS.path(".tmp"))
|
|
280
277
|
)
|
|
281
278
|
|
|
282
|
-
log_manager = PipLogManager.create(
|
|
279
|
+
log_manager = PipLogManager.create(
|
|
280
|
+
self.pip_log,
|
|
281
|
+
download_targets=tuple(request.download_target for request in self.requests),
|
|
282
|
+
)
|
|
283
283
|
if self.pip_log and not self.pip_log.user_specified:
|
|
284
284
|
TRACER.log(
|
|
285
285
|
"Preserving `pip download` log at {log_path}".format(log_path=self.pip_log.path),
|
|
286
286
|
V=ENV.PEX_VERBOSE,
|
|
287
287
|
)
|
|
288
288
|
|
|
289
|
-
requirement_config = RequirementConfiguration(
|
|
290
|
-
requirements=self.requirements,
|
|
291
|
-
requirement_files=self.requirement_files,
|
|
292
|
-
constraint_files=self.constraint_files,
|
|
293
|
-
)
|
|
294
|
-
network_configuration = (
|
|
295
|
-
self.package_index_configuration.network_configuration
|
|
296
|
-
if self.package_index_configuration
|
|
297
|
-
else None
|
|
298
|
-
)
|
|
299
|
-
subdirectory_by_filename = {} # type: Dict[str, str]
|
|
300
|
-
for parsed_requirement in requirement_config.parse_requirements(network_configuration):
|
|
301
|
-
if not isinstance(parsed_requirement, URLRequirement):
|
|
302
|
-
continue
|
|
303
|
-
subdirectory = parsed_requirement.subdirectory
|
|
304
|
-
if subdirectory:
|
|
305
|
-
subdirectory_by_filename[parsed_requirement.filename] = subdirectory
|
|
306
|
-
|
|
307
289
|
spawn_download = functools.partial(
|
|
308
290
|
self._spawn_download,
|
|
309
291
|
resolved_dists_dir=dest,
|
|
310
292
|
log_manager=log_manager,
|
|
311
|
-
subdirectory_by_filename=subdirectory_by_filename,
|
|
312
293
|
)
|
|
313
294
|
with TRACER.timed(
|
|
314
295
|
"Resolving for:\n {}".format(
|
|
315
|
-
"\n ".join(
|
|
296
|
+
"\n ".join(request.render_description() for request in self.requests)
|
|
316
297
|
)
|
|
317
298
|
):
|
|
318
299
|
try:
|
|
319
300
|
return list(
|
|
320
301
|
execute_parallel(
|
|
321
|
-
inputs=self.
|
|
302
|
+
inputs=self.requests,
|
|
322
303
|
spawn_func=spawn_download,
|
|
323
|
-
error_handler=Raise[
|
|
304
|
+
error_handler=Raise[DownloadRequest, DownloadResult](Unsatisfiable),
|
|
324
305
|
max_jobs=max_parallel_jobs,
|
|
325
306
|
)
|
|
326
307
|
)
|
|
@@ -329,13 +310,31 @@ class DownloadRequest(object):
|
|
|
329
310
|
|
|
330
311
|
def _spawn_download(
|
|
331
312
|
self,
|
|
332
|
-
|
|
313
|
+
request, # type: DownloadRequest
|
|
333
314
|
resolved_dists_dir, # type: str
|
|
334
315
|
log_manager, # type: PipLogManager
|
|
335
|
-
subdirectory_by_filename, # type: Mapping[str, str]
|
|
336
316
|
):
|
|
337
317
|
# type: (...) -> SpawnedJob[DownloadResult]
|
|
338
318
|
|
|
319
|
+
requirement_config = RequirementConfiguration(
|
|
320
|
+
requirements=request.requirements,
|
|
321
|
+
requirement_files=request.requirement_files,
|
|
322
|
+
constraint_files=request.constraint_files,
|
|
323
|
+
)
|
|
324
|
+
network_configuration = (
|
|
325
|
+
self.package_index_configuration.network_configuration
|
|
326
|
+
if self.package_index_configuration
|
|
327
|
+
else None
|
|
328
|
+
)
|
|
329
|
+
subdirectory_by_filename = {} # type: Dict[str, str]
|
|
330
|
+
for parsed_requirement in requirement_config.parse_requirements(network_configuration):
|
|
331
|
+
if not isinstance(parsed_requirement, URLRequirement):
|
|
332
|
+
continue
|
|
333
|
+
subdirectory = parsed_requirement.subdirectory
|
|
334
|
+
if subdirectory:
|
|
335
|
+
subdirectory_by_filename[parsed_requirement.filename] = subdirectory
|
|
336
|
+
|
|
337
|
+
download_target = request.download_target
|
|
339
338
|
download_dir = os.path.join(resolved_dists_dir, download_target.id(complete=True))
|
|
340
339
|
observer = (
|
|
341
340
|
self.observer.observe_download(
|
|
@@ -358,9 +357,9 @@ class DownloadRequest(object):
|
|
|
358
357
|
),
|
|
359
358
|
).spawn_download_distributions(
|
|
360
359
|
download_dir=download_dir,
|
|
361
|
-
requirements=
|
|
362
|
-
requirement_files=
|
|
363
|
-
constraint_files=
|
|
360
|
+
requirements=request.requirements,
|
|
361
|
+
requirement_files=request.requirement_files,
|
|
362
|
+
constraint_files=request.constraint_files,
|
|
364
363
|
allow_prereleases=self.allow_prereleases,
|
|
365
364
|
transitive=self.transitive,
|
|
366
365
|
target=target,
|
|
@@ -1315,7 +1314,7 @@ def _parse_reqs(
|
|
|
1315
1314
|
requirement_files=None, # type: Optional[Iterable[str]]
|
|
1316
1315
|
network_configuration=None, # type: Optional[NetworkConfiguration]
|
|
1317
1316
|
):
|
|
1318
|
-
# type: (...) ->
|
|
1317
|
+
# type: (...) -> Tuple[ParsedRequirement, ...]
|
|
1319
1318
|
requirement_configuration = RequirementConfiguration(
|
|
1320
1319
|
requirements=requirements, requirement_files=requirement_files
|
|
1321
1320
|
)
|
|
@@ -1382,6 +1381,23 @@ def resolve(
|
|
|
1382
1381
|
:raises ValueError: If `build=False` and `use_wheel=False`.
|
|
1383
1382
|
"""
|
|
1384
1383
|
|
|
1384
|
+
if not build_configuration.allow_wheels:
|
|
1385
|
+
foreign_targets = [
|
|
1386
|
+
target
|
|
1387
|
+
for target in targets.unique_targets()
|
|
1388
|
+
if not isinstance(target, LocalInterpreter)
|
|
1389
|
+
]
|
|
1390
|
+
if foreign_targets:
|
|
1391
|
+
raise ValueError(
|
|
1392
|
+
"Cannot ignore wheels (use_wheel=False) when resolving for foreign {platforms}: "
|
|
1393
|
+
"{foreign_platforms}".format(
|
|
1394
|
+
platforms=pluralize(foreign_targets, "platform"),
|
|
1395
|
+
foreign_platforms=", ".join(
|
|
1396
|
+
target.render_description() for target in foreign_targets
|
|
1397
|
+
),
|
|
1398
|
+
)
|
|
1399
|
+
)
|
|
1400
|
+
|
|
1385
1401
|
# A resolve happens in four stages broken into two phases:
|
|
1386
1402
|
# 1. Download phase: resolves sdists and wheels in a single operation per distribution target.
|
|
1387
1403
|
# 2. Install phase:
|
|
@@ -1423,29 +1439,19 @@ def resolve(
|
|
|
1423
1439
|
keyring_provider=keyring_provider,
|
|
1424
1440
|
)
|
|
1425
1441
|
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
target
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
"{foreign_platforms}".format(
|
|
1436
|
-
platforms=pluralize(foreign_targets, "platform"),
|
|
1437
|
-
foreign_platforms=", ".join(
|
|
1438
|
-
target.render_description() for target in foreign_targets
|
|
1439
|
-
),
|
|
1440
|
-
)
|
|
1441
|
-
)
|
|
1442
|
+
requests = tuple(
|
|
1443
|
+
DownloadRequest(
|
|
1444
|
+
download_target=DownloadTarget(target=target),
|
|
1445
|
+
requirements=requirements,
|
|
1446
|
+
requirement_files=requirement_files,
|
|
1447
|
+
constraint_files=constraint_files,
|
|
1448
|
+
)
|
|
1449
|
+
for target in targets.unique_targets()
|
|
1450
|
+
)
|
|
1442
1451
|
|
|
1443
1452
|
build_requests, download_results = _download_internal(
|
|
1444
|
-
|
|
1453
|
+
requests=requests,
|
|
1445
1454
|
direct_requirements=direct_requirements,
|
|
1446
|
-
requirements=requirements,
|
|
1447
|
-
requirement_files=requirement_files,
|
|
1448
|
-
constraint_files=constraint_files,
|
|
1449
1455
|
allow_prereleases=allow_prereleases,
|
|
1450
1456
|
transitive=transitive,
|
|
1451
1457
|
package_index_configuration=package_index_configuration,
|
|
@@ -1493,11 +1499,8 @@ def resolve(
|
|
|
1493
1499
|
|
|
1494
1500
|
|
|
1495
1501
|
def _download_internal(
|
|
1496
|
-
|
|
1502
|
+
requests, # type: Tuple[DownloadRequest, ...]
|
|
1497
1503
|
direct_requirements, # type: Iterable[ParsedRequirement]
|
|
1498
|
-
requirements=None, # type: Optional[Iterable[str]]
|
|
1499
|
-
requirement_files=None, # type: Optional[Iterable[str]]
|
|
1500
|
-
constraint_files=None, # type: Optional[Iterable[str]]
|
|
1501
1504
|
allow_prereleases=False, # type: bool
|
|
1502
1505
|
transitive=True, # type: bool
|
|
1503
1506
|
package_index_configuration=None, # type: Optional[PackageIndexConfiguration]
|
|
@@ -1509,27 +1512,12 @@ def _download_internal(
|
|
|
1509
1512
|
pip_version=None, # type: Optional[PipVersionValue]
|
|
1510
1513
|
resolver=None, # type: Optional[Resolver]
|
|
1511
1514
|
dependency_configuration=DependencyConfiguration(), # type: DependencyConfiguration
|
|
1512
|
-
universal_targets=(), # type: Iterable[UniversalTarget]
|
|
1513
1515
|
):
|
|
1514
1516
|
# type: (...) -> Tuple[List[BuildRequest], List[DownloadResult]]
|
|
1515
1517
|
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
production_assert(len(unique_targets) == 1)
|
|
1519
|
-
target = unique_targets.pop()
|
|
1520
|
-
download_targets = tuple(
|
|
1521
|
-
DownloadTarget(target, universal_target=universal_target)
|
|
1522
|
-
for universal_target in universal_targets
|
|
1523
|
-
)
|
|
1524
|
-
else:
|
|
1525
|
-
download_targets = tuple(DownloadTarget(target) for target in unique_targets)
|
|
1526
|
-
|
|
1527
|
-
download_request = DownloadRequest(
|
|
1528
|
-
download_targets=download_targets,
|
|
1518
|
+
download_session = _DownloadSession(
|
|
1519
|
+
requests=requests,
|
|
1529
1520
|
direct_requirements=direct_requirements,
|
|
1530
|
-
requirements=requirements,
|
|
1531
|
-
requirement_files=requirement_files,
|
|
1532
|
-
constraint_files=constraint_files,
|
|
1533
1521
|
allow_prereleases=allow_prereleases,
|
|
1534
1522
|
transitive=transitive,
|
|
1535
1523
|
package_index_configuration=package_index_configuration,
|
|
@@ -1541,8 +1529,8 @@ def _download_internal(
|
|
|
1541
1529
|
dependency_configuration=dependency_configuration,
|
|
1542
1530
|
)
|
|
1543
1531
|
|
|
1544
|
-
local_projects = list(
|
|
1545
|
-
download_results =
|
|
1532
|
+
local_projects = list(download_session.iter_local_projects())
|
|
1533
|
+
download_results = download_session.download_distributions(
|
|
1546
1534
|
dest=dest, max_parallel_jobs=max_parallel_jobs
|
|
1547
1535
|
)
|
|
1548
1536
|
return local_projects, download_results
|
|
@@ -1602,7 +1590,6 @@ def download(
|
|
|
1602
1590
|
extra_pip_requirements=(), # type: Tuple[Requirement, ...]
|
|
1603
1591
|
keyring_provider=None, # type: Optional[str]
|
|
1604
1592
|
dependency_configuration=DependencyConfiguration(), # type: DependencyConfiguration
|
|
1605
|
-
universal_targets=(), # type: Iterable[UniversalTarget]
|
|
1606
1593
|
):
|
|
1607
1594
|
# type: (...) -> Downloaded
|
|
1608
1595
|
"""Downloads all distributions needed to meet requirements for multiple distribution targets.
|
|
@@ -1632,7 +1619,114 @@ def download(
|
|
|
1632
1619
|
:raises ValueError: If a foreign platform was provided in `platforms`, and `use_wheel=False`.
|
|
1633
1620
|
:raises ValueError: If `build=False` and `use_wheel=False`.
|
|
1634
1621
|
"""
|
|
1635
|
-
|
|
1622
|
+
return download_requests(
|
|
1623
|
+
requests=tuple(
|
|
1624
|
+
DownloadRequest(
|
|
1625
|
+
download_target=DownloadTarget(target),
|
|
1626
|
+
requirements=requirements,
|
|
1627
|
+
requirement_files=requirement_files,
|
|
1628
|
+
constraint_files=constraint_files,
|
|
1629
|
+
)
|
|
1630
|
+
for target in targets.unique_targets()
|
|
1631
|
+
),
|
|
1632
|
+
direct_requirements=_parse_reqs(requirements, requirement_files, network_configuration),
|
|
1633
|
+
allow_prereleases=allow_prereleases,
|
|
1634
|
+
transitive=transitive,
|
|
1635
|
+
repos_configuration=repos_configuration,
|
|
1636
|
+
resolver_version=resolver_version,
|
|
1637
|
+
network_configuration=network_configuration,
|
|
1638
|
+
build_configuration=build_configuration,
|
|
1639
|
+
dest=dest,
|
|
1640
|
+
max_parallel_jobs=max_parallel_jobs,
|
|
1641
|
+
observer=observer,
|
|
1642
|
+
pip_log=pip_log,
|
|
1643
|
+
pip_version=pip_version,
|
|
1644
|
+
resolver=resolver,
|
|
1645
|
+
use_pip_config=use_pip_config,
|
|
1646
|
+
extra_pip_requirements=extra_pip_requirements,
|
|
1647
|
+
keyring_provider=keyring_provider,
|
|
1648
|
+
dependency_configuration=dependency_configuration,
|
|
1649
|
+
)
|
|
1650
|
+
|
|
1651
|
+
|
|
1652
|
+
def _as_str_tuple(items):
|
|
1653
|
+
# type: (Optional[Iterable[str]]) -> Tuple[str, ...]
|
|
1654
|
+
if not items:
|
|
1655
|
+
return ()
|
|
1656
|
+
return items if isinstance(items, tuple) else tuple(items)
|
|
1657
|
+
|
|
1658
|
+
|
|
1659
|
+
@attr.s(frozen=True)
|
|
1660
|
+
class DownloadRequest(object):
|
|
1661
|
+
@classmethod
|
|
1662
|
+
def create(
|
|
1663
|
+
cls,
|
|
1664
|
+
target, # type: Target
|
|
1665
|
+
universal_target=None, # type: Optional[UniversalTarget]
|
|
1666
|
+
requirement_configuration=RequirementConfiguration(), # type: RequirementConfiguration
|
|
1667
|
+
provenance=None, # type: Optional[str]
|
|
1668
|
+
):
|
|
1669
|
+
# type: (...) -> DownloadRequest
|
|
1670
|
+
return cls(
|
|
1671
|
+
download_target=DownloadTarget(target=target, universal_target=universal_target),
|
|
1672
|
+
requirements=requirement_configuration.requirements,
|
|
1673
|
+
requirement_files=requirement_configuration.requirement_files,
|
|
1674
|
+
constraint_files=requirement_configuration.constraint_files,
|
|
1675
|
+
provenance=provenance,
|
|
1676
|
+
)
|
|
1677
|
+
|
|
1678
|
+
download_target = attr.ib() # type: DownloadTarget
|
|
1679
|
+
requirements = attr.ib(default=(), converter=_as_str_tuple) # type: Tuple[str, ...]
|
|
1680
|
+
requirement_files = attr.ib(default=(), converter=_as_str_tuple) # type: Tuple[str, ...]
|
|
1681
|
+
constraint_files = attr.ib(default=(), converter=_as_str_tuple) # type: Tuple[str, ...]
|
|
1682
|
+
provenance = attr.ib(default=None) # type: Optional[str]
|
|
1683
|
+
|
|
1684
|
+
def render_description(self):
|
|
1685
|
+
# type: () -> str
|
|
1686
|
+
description = self.download_target.render_description()
|
|
1687
|
+
if not self.provenance:
|
|
1688
|
+
return description
|
|
1689
|
+
return "{description} from {provenance}".format(
|
|
1690
|
+
description=description, provenance=self.provenance
|
|
1691
|
+
)
|
|
1692
|
+
|
|
1693
|
+
@property
|
|
1694
|
+
def target(self):
|
|
1695
|
+
# type: () -> Target
|
|
1696
|
+
return self.download_target.target
|
|
1697
|
+
|
|
1698
|
+
@property
|
|
1699
|
+
def universal_target(self):
|
|
1700
|
+
# type: () -> Optional[UniversalTarget]
|
|
1701
|
+
return self.download_target.universal_target
|
|
1702
|
+
|
|
1703
|
+
@property
|
|
1704
|
+
def has_requirements(self):
|
|
1705
|
+
return bool(self.requirements) or bool(self.requirement_files)
|
|
1706
|
+
|
|
1707
|
+
|
|
1708
|
+
def download_requests(
|
|
1709
|
+
requests, # type: Tuple[DownloadRequest, ...]
|
|
1710
|
+
direct_requirements, # type: Tuple[ParsedRequirement, ...]
|
|
1711
|
+
allow_prereleases=False, # type: bool
|
|
1712
|
+
transitive=True, # type: bool
|
|
1713
|
+
repos_configuration=ReposConfiguration(), # type: ReposConfiguration
|
|
1714
|
+
resolver_version=None, # type: Optional[ResolverVersion.Value]
|
|
1715
|
+
network_configuration=None, # type: Optional[NetworkConfiguration]
|
|
1716
|
+
build_configuration=BuildConfiguration(), # type: BuildConfiguration
|
|
1717
|
+
dest=None, # type: Optional[str]
|
|
1718
|
+
max_parallel_jobs=None, # type: Optional[int]
|
|
1719
|
+
observer=None, # type: Optional[ResolveObserver]
|
|
1720
|
+
pip_log=None, # type: Optional[PipLog]
|
|
1721
|
+
pip_version=None, # type: Optional[PipVersionValue]
|
|
1722
|
+
resolver=None, # type: Optional[Resolver]
|
|
1723
|
+
use_pip_config=False, # type: bool
|
|
1724
|
+
extra_pip_requirements=(), # type: Tuple[Requirement, ...]
|
|
1725
|
+
keyring_provider=None, # type: Optional[str]
|
|
1726
|
+
dependency_configuration=DependencyConfiguration(), # type: DependencyConfiguration
|
|
1727
|
+
):
|
|
1728
|
+
# type: (...) -> Downloaded
|
|
1729
|
+
|
|
1636
1730
|
package_index_configuration = PackageIndexConfiguration.create(
|
|
1637
1731
|
pip_version=pip_version,
|
|
1638
1732
|
resolver_version=resolver_version,
|
|
@@ -1642,12 +1736,10 @@ def download(
|
|
|
1642
1736
|
extra_pip_requirements=extra_pip_requirements,
|
|
1643
1737
|
keyring_provider=keyring_provider,
|
|
1644
1738
|
)
|
|
1739
|
+
|
|
1645
1740
|
build_requests, download_results = _download_internal(
|
|
1646
|
-
|
|
1741
|
+
requests=requests,
|
|
1647
1742
|
direct_requirements=direct_requirements,
|
|
1648
|
-
requirements=requirements,
|
|
1649
|
-
requirement_files=requirement_files,
|
|
1650
|
-
constraint_files=constraint_files,
|
|
1651
1743
|
allow_prereleases=allow_prereleases,
|
|
1652
1744
|
transitive=transitive,
|
|
1653
1745
|
package_index_configuration=package_index_configuration,
|
|
@@ -1659,7 +1751,6 @@ def download(
|
|
|
1659
1751
|
pip_version=pip_version,
|
|
1660
1752
|
resolver=resolver,
|
|
1661
1753
|
dependency_configuration=dependency_configuration,
|
|
1662
|
-
universal_targets=universal_targets,
|
|
1663
1754
|
)
|
|
1664
1755
|
|
|
1665
1756
|
local_distributions = []
|
pex/vendor/__main__.py
CHANGED
pex/venv/venv_pex.py
CHANGED
|
@@ -186,7 +186,7 @@ def boot(
|
|
|
186
186
|
"_PEX_PATCHED_TAGS_FILE",
|
|
187
187
|
# These are used by Pex's Pip venv to implement universal locks.
|
|
188
188
|
"_PEX_PYTHON_VERSIONS_FILE",
|
|
189
|
-
"
|
|
189
|
+
"_PEX_UNIVERSAL_TARGET_FILE",
|
|
190
190
|
# This is used to implement Pex --exclude and --override support.
|
|
191
191
|
"_PEX_DEP_CONFIG_FILE",
|
|
192
192
|
# This is used to implement --source support.
|
pex/version.py
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pex
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.62.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.62.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.62.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.62.1
|
|
13
13
|
Keywords: package,executable,virtualenv,lock,freeze
|
|
14
14
|
Classifier: Development Status :: 5 - Production/Stable
|
|
15
15
|
Classifier: Intended Audience :: Developers
|
|
@@ -39,7 +39,7 @@ pex/orderedset.py,sha256=jZ06iLmsplRngd4mfCeS-swRYlVqs6NBop5tFxSEwtY,3723
|
|
|
39
39
|
pex/os.py,sha256=QfEFtrXjLcz_yRW3ng3k1YCC1DzbhwpjByOF8ARYc4g,7576
|
|
40
40
|
pex/pep_376.py,sha256=8aTCbm3vaotfUlAulKJOmwrMpuUbHW7D4Mdr3rEUAto,5480
|
|
41
41
|
pex/pep_425.py,sha256=vuU80pL49jGVqOpACkFipsJqTYneXXAx-o6vBLxkeKE,6698
|
|
42
|
-
pex/pep_427.py,sha256=
|
|
42
|
+
pex/pep_427.py,sha256=Hc_wSAMGsCuce05cbWQE2Z4IJ5gJzbZYpwMfDB0FDYo,39304
|
|
43
43
|
pex/pep_440.py,sha256=HLyVaZgO3_FZx1eoZyNYyHGB0w3I3q2oBBe3PZabt4c,3053
|
|
44
44
|
pex/pep_503.py,sha256=iwq32QPIO0SCir8iTl8elAQRyvMqasbX_XLp1ax5_bo,1828
|
|
45
45
|
pex/pep_508.py,sha256=DyDbO-HAM7QSkRaCdUijgDkZYR5AnSRQx8fzfGok3e8,6715
|
|
@@ -56,7 +56,7 @@ pex/pth.py,sha256=YGiWmW99vPvPm5-iU_Kbvbu1NTtJyyTp32ilHyAJ_VQ,3402
|
|
|
56
56
|
pex/pyenv.py,sha256=O5_Ec26J8GQpa5Xt_TtSB0A9rV62vYgciIwBlW4aiZ8,9276
|
|
57
57
|
pex/rank.py,sha256=dNFi6Y7bBe8gwcKSon81EOs9Jw4uhUzoHgRnIDYV8lU,3901
|
|
58
58
|
pex/requirements.py,sha256=NpseoFVrUfTDSd0JAoOnVstbvYC140ecDgiHeb39b3s,29007
|
|
59
|
-
pex/resolver.py,sha256=
|
|
59
|
+
pex/resolver.py,sha256=B6hRLzbTPRID8OXq-2Pph15yfU8axuYTbl8KIdAbOqY,73662
|
|
60
60
|
pex/result.py,sha256=VTE_n-IffLf-FD4ENNbRvq_ebahh-IDYAna1y5Iw1WI,3090
|
|
61
61
|
pex/sh_boot.py,sha256=mTB7aYc26GymgmbN5-QCiC_sbi3GBL5NZAiwXCsNL1w,11433
|
|
62
62
|
pex/sorted_tuple.py,sha256=L_49iVoVZ57J-q44nVRO-boT0bc8ynhJlhS_yUp2xeo,2371
|
|
@@ -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=ya0u8lQFcL-H9DlwHMrAMd_Y63MSs7QreOsPtNMExLA,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=UN9fADKJV3FmTWUqWma-uVCmfKbq-85ikkmkirt59EE,57407
|
|
117
|
+
pex/docs/html/genindex.html,sha256=1TGs4dzWrsUcjVdJkcBG8jDKU71NySoEPjza0v4vyXQ,17198
|
|
118
|
+
pex/docs/html/index.html,sha256=tZICBEFelWytUUPtC6_krqyOXqRHmMU5Y-twNl-t41M,25028
|
|
119
|
+
pex/docs/html/recipes.html,sha256=qqf-DUdQtwlR1FsFcNpQdxTc640XOtOYwZd4x7Bp0cE,35192
|
|
120
|
+
pex/docs/html/scie.html,sha256=tC7AhPiEqqI7oMFHvm_E0WvyRP7pQxoX1OXFexHmTAU,62182
|
|
121
|
+
pex/docs/html/search.html,sha256=f95B7h23N_7skJhG65wvpYRfwgLM-rJTWg7WLxrr7QU,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=RM3B_Wk9pDWZ-aJx981ZqqckRVA9jQc5APZ5B2eJK-w,22754
|
|
124
|
+
pex/docs/html/_pagefind/pagefind-entry.json,sha256=8DX3GGrXeaSUjEmeEGhHWOv5XUgTeIHBpCto3sAwTcc,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_32e8257caf.pf_meta,sha256=Z-WI_2D76Sdn1eeTK_aXDHPMzvWM_hQS8hvDxGLABTc,152
|
|
131
131
|
pex/docs/html/_pagefind/pagefind.js,sha256=Q-4jKyPif6awDU9x8IoWXTWoJJR1JZicegUYQ-QI4MA,32912
|
|
132
132
|
pex/docs/html/_pagefind/wasm.en.pagefind,sha256=mG0TKIE7WXynsyg-tpiMZiVG2Hwebbt2UqFqlqdTTsE,70873
|
|
133
133
|
pex/docs/html/_pagefind/wasm.unknown.pagefind,sha256=eAREknqQnc_y96pbl8eYz9zqfUXsqe64B7HwrQE2SkY,67202
|
|
134
|
-
pex/docs/html/_pagefind/fragment/
|
|
135
|
-
pex/docs/html/_pagefind/fragment/
|
|
136
|
-
pex/docs/html/_pagefind/fragment/
|
|
137
|
-
pex/docs/html/_pagefind/fragment/
|
|
138
|
-
pex/docs/html/_pagefind/fragment/
|
|
139
|
-
pex/docs/html/_pagefind/fragment/
|
|
140
|
-
pex/docs/html/_pagefind/fragment/
|
|
141
|
-
pex/docs/html/_pagefind/fragment/
|
|
142
|
-
pex/docs/html/_pagefind/index/
|
|
134
|
+
pex/docs/html/_pagefind/fragment/en_1bbeb07.pf_fragment,sha256=GNY8G_R0vC5c98OQ7oKXa0kCQU6MnH83UBTNc_enLiA,370
|
|
135
|
+
pex/docs/html/_pagefind/fragment/en_1befd43.pf_fragment,sha256=Vl9GU-UqxZSbhzA1979-LyFvqy3ky32r7F6YoCIQnwk,1142
|
|
136
|
+
pex/docs/html/_pagefind/fragment/en_45eea4b.pf_fragment,sha256=43LZFemRwy14ZnWjnsjZbNNF6rBpDaaYL624UCOQz3Y,1158
|
|
137
|
+
pex/docs/html/_pagefind/fragment/en_7822de6.pf_fragment,sha256=vy3E40FcaAdBFIHb9O5bQp8_qR_OBEPOGNBh-FBIcJk,3019
|
|
138
|
+
pex/docs/html/_pagefind/fragment/en_87f76ba.pf_fragment,sha256=rLxrWIUkP8VwqcqhM1niOhh6BrT1w0AcruAgQcO4eAc,4847
|
|
139
|
+
pex/docs/html/_pagefind/fragment/en_a89f2ec.pf_fragment,sha256=Nd5eSi8bn0R4voM0ndzCVcp5nnxNyAH5Y3aoEA3jtcs,361
|
|
140
|
+
pex/docs/html/_pagefind/fragment/en_c2a647e.pf_fragment,sha256=-NCHDsEEUfhqV4QF5qO512jGoBi0coM9ZWlTXmZl7ZA,3648
|
|
141
|
+
pex/docs/html/_pagefind/fragment/en_d2f2c1b.pf_fragment,sha256=xLFnaPLst6cfINKhWUeqWvA_hvlxsURVfQLb-2u3aws,6820
|
|
142
|
+
pex/docs/html/_pagefind/index/en_31a0754.pf_index,sha256=uNNJudFUu4FBSD22ew6iPMtmzUCpHRQVd8MI4lk6Tmg,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=P0OnLp8gPtvHEKNbPOClTT3q7F6FmPkJ5OTFgEqAeAE,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=cE1sKI3zeedSzQ4bEo8VrWoSCCk4K6jprg6aN_Etm68,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
|
|
@@ -205,14 +205,14 @@ pex/resolve/downloads.py,sha256=8R4GI-PSSLw2qv6XKsGyDFEiugfJgw2G6F4lywtU_Xk,7074
|
|
|
205
205
|
pex/resolve/lock_downloader.py,sha256=PisFgzZsMaGjRrE6M-BLvDeoZqDnhvCdf2qJNe2-PW8,15395
|
|
206
206
|
pex/resolve/lock_resolver.py,sha256=b6UoqaXPNdWEt1JC8S6HSc4el5ows6kmIa5T87OsAm0,23398
|
|
207
207
|
pex/resolve/locked_resolve.py,sha256=A8bcW_HMjZSD29h_3CpYUPD2OwQtPsCScDaA5T9iKL4,40681
|
|
208
|
-
pex/resolve/locker.py,sha256=
|
|
209
|
-
pex/resolve/locker_patches.py,sha256=
|
|
208
|
+
pex/resolve/locker.py,sha256=c-KzmnpOZNSaHuFr0JoeqSnL0uNwH5CpRkD12RipbQY,25477
|
|
209
|
+
pex/resolve/locker_patches.py,sha256=KttN07cCok3ajNm5TLzsZhBTPmPDyO33WkDbE4G9TB4,8043
|
|
210
210
|
pex/resolve/package_repository.py,sha256=xMU9aTxojS2sNmWp03jfMBTIGhq3eqNuNOacl8BiiGY,15123
|
|
211
211
|
pex/resolve/path_mappings.py,sha256=d6JVzD0K342ELz3O8AcsaXoikLDF3xYrgbXkixMmf3Q,2073
|
|
212
212
|
pex/resolve/pex_repository_resolver.py,sha256=nr-qtnT-vGTan20vygbW8VH_uTv7jK9HdF4c4yrbBMY,5528
|
|
213
213
|
pex/resolve/pre_resolved_resolver.py,sha256=nPQiE8cZwK-t9Jm-zpSpnbxNO4N4QXVA9fGIx_5llDs,10315
|
|
214
214
|
pex/resolve/project.py,sha256=BYy1m8-jUsiaBR1DF3eJiqpqvdqrzB-cQDPvcMD2v-0,14923
|
|
215
|
-
pex/resolve/requirement_configuration.py,sha256=
|
|
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
218
|
pex/resolve/resolver_configuration.py,sha256=H1yx6LoO1bZO5wAAVrC5kSNvwSK-el9brmIiPZSIMDY,9780
|
|
@@ -221,17 +221,17 @@ pex/resolve/resolvers.py,sha256=0YFFukBDDTe0laT7at7wRMMbynaPzZhaZl55NgI1hS4,1015
|
|
|
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
|
-
pex/resolve/target_system.py,sha256=
|
|
224
|
+
pex/resolve/target_system.py,sha256=6omSogiX5cYlSGjPrAMQpP5MwhxBu4R8X0Mw6c6Jx_M,29905
|
|
225
225
|
pex/resolve/venv_resolver.py,sha256=2TzcrBXz6FCWO30RMek4Coi81cy0QYPjcZgjN-TXWaE,20663
|
|
226
226
|
pex/resolve/lockfile/__init__.py,sha256=uASB5OU996Jax-h3kMmeZjG5Jdy9BYDR6A1swkBoFDg,107
|
|
227
|
-
pex/resolve/lockfile/create.py,sha256=
|
|
227
|
+
pex/resolve/lockfile/create.py,sha256=NEkIm0nCbUStBQqqjh_MUFmNNgNLw2iMBGX8EKip1UM,28615
|
|
228
228
|
pex/resolve/lockfile/download_manager.py,sha256=7mI_vUIIn4VxG3RDNxyT5yTpFLG9LH_IlGDKRMB_OJ0,9176
|
|
229
229
|
pex/resolve/lockfile/json_codec.py,sha256=jgFPmZ9eW-PyNFCzzUQU7S9vNJR6-gX2axtC065ypRw,20544
|
|
230
230
|
pex/resolve/lockfile/model.py,sha256=BupcGuRT3EG8c_4Sc7C8CnKoZo7c6jqDYXreIJZoJfg,7838
|
|
231
231
|
pex/resolve/lockfile/pep_751.py,sha256=t2vvd5dTgLuQdlehl5yLlM8gdkW7IiR4sy7TOj1io8g,72671
|
|
232
232
|
pex/resolve/lockfile/requires_dist.py,sha256=ROU8j0Or5Dkqx_Tn9kysQvNaiittLgOj2BOJgxjDa-A,2973
|
|
233
233
|
pex/resolve/lockfile/subset.py,sha256=tbjLsMa9aZ8vSE71uI-23d-rV9G3MrELhqiJuldmfdU,7980
|
|
234
|
-
pex/resolve/lockfile/targets.py,sha256=
|
|
234
|
+
pex/resolve/lockfile/targets.py,sha256=Dy28viC7yrlzRXgt-4PEVN9fCxqqnTLCpXRSpvm_QKA,17185
|
|
235
235
|
pex/resolve/lockfile/tarjan.py,sha256=Pypa5E78mCY6WdRSDNzXZiYQsde6LvWhiBBOI-K2ia4,5053
|
|
236
236
|
pex/resolve/lockfile/updater.py,sha256=k2mQP-ESC0uWmnSOyXo3JF-dyx2pkfX4sIC1Gb_peCY,35171
|
|
237
237
|
pex/resolve/pep_691/__init__.py,sha256=hbVu8HKJGOAmXQlIyMjcEt0EsBK311HumeAwENvHHxY,107
|
|
@@ -256,7 +256,7 @@ pex/tools/commands/repository.py,sha256=d76aCfRkVCB6eDO_BA7mQL2njenWGbotAztv-jZn
|
|
|
256
256
|
pex/tools/commands/venv.py,sha256=MriujQyIYFjZBnH6uZ9_OKCvxn6rsi4lti1zn7iMctE,5908
|
|
257
257
|
pex/vendor/README.md,sha256=ALpofIYGpo6-TheVfYJpm3M9t6iKygQ0WETWxKojcuo,2370
|
|
258
258
|
pex/vendor/__init__.py,sha256=08DX-hUMzpw6cK45SWkZGXsMl6qBSIXfGBLHJ7obRCI,17886
|
|
259
|
-
pex/vendor/__main__.py,sha256=
|
|
259
|
+
pex/vendor/__main__.py,sha256=QNwzJdgZ63pSNQz0mym0cLNKM8M5IYlCRtRYPfdH09Q,22910
|
|
260
260
|
pex/vendor/_vendored/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
261
261
|
pex/vendor/_vendored/ansicolors/.layout.json,sha256=ZweRHVj4u21AbQT81HLnvJAnBGRKZz86JTTHnC6bOgA,205
|
|
262
262
|
pex/vendor/_vendored/ansicolors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -977,7 +977,7 @@ pex/venv/install_scope.py,sha256=cws8l_ujLxViO_6ayspaq-jJjOfjE4rWWcaZPf72Xzw,374
|
|
|
977
977
|
pex/venv/installer.py,sha256=jJtHjjwCVbCyAX1J8ZTtdBqv5MTFfngjXiPKWkAw3M4,23969
|
|
978
978
|
pex/venv/installer_configuration.py,sha256=VbK7NdrMhPI6BKclDbcr5NYn_0ia7xtl2AhvMVC7AU4,1101
|
|
979
979
|
pex/venv/installer_options.py,sha256=TS7AaRT_3Io0R2Aaoq1pSjQ0srZ4TFf2NattQpqHFiw,4457
|
|
980
|
-
pex/venv/venv_pex.py,sha256=
|
|
980
|
+
pex/venv/venv_pex.py,sha256=YaEdGka0fRwU9BNrCkDLL04knpF3fYbMRbKI-zsFFXg,14012
|
|
981
981
|
pex/venv/virtualenv.py,sha256=vpYYCrTmr_sHHIcJ-2GFgn3fVutVEvhg0U-U3IeQ6Jk,22755
|
|
982
982
|
pex/venv/virtualenv_16.7.12_py,sha256=JklxCLvTpxytqGXXEoeLw5V_yuvyvEMTV_Vg8FJOYnM,106996
|
|
983
983
|
pex/windows/__init__.py,sha256=4aRkPMLpaegUlRdqycx8YyQnUCbw4_Xu9Mt-qSI0g5c,5460
|
|
@@ -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.62.1.dist-info/METADATA,sha256=VSG2IPB2GUdDVabZx4iPRFY1aSgl7c1Zd8d3gZn4TGI,7476
|
|
989
|
+
pex-2.62.1.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
|
|
990
|
+
pex-2.62.1.dist-info/entry_points.txt,sha256=LD9tcxNxdsVLeIF6zR7dyH1vgo2eD9a-05TC1UraGMQ,174
|
|
991
|
+
pex-2.62.1.dist-info/top_level.txt,sha256=HlafJUPu7mfjxv3SDH-RbkxsHOWSVbPXTEBC1hzonpM,4
|
|
992
|
+
pex-2.62.1.dist-info/licenses/LICENSE,sha256=bcDgaNzzpbyOBUIFuFt3IOHUkmW7xkv1FdLPeRl99po,11323
|
|
993
|
+
pex-2.62.1.dist-info/pylock/pylock.toml,sha256=9TIk5X6BqnJ6lKu8eb0EnzwbBcOjs3QJWzcLMYx8M5k,7151
|
|
994
|
+
pex-2.62.1.dist-info/RECORD,,
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|