pipgrip 0.10.12__tar.gz → 0.10.14__tar.gz
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.
- {pipgrip-0.10.12/src/pipgrip.egg-info → pipgrip-0.10.14}/PKG-INFO +1 -1
- pipgrip-0.10.14/src/pipgrip/_repo_version.py +1 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/cli.py +7 -2
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/range.py +16 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/pipper.py +8 -4
- {pipgrip-0.10.12 → pipgrip-0.10.14/src/pipgrip.egg-info}/PKG-INFO +1 -1
- pipgrip-0.10.12/src/pipgrip/_repo_version.py +0 -1
- {pipgrip-0.10.12 → pipgrip-0.10.14}/LICENSE +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/README.md +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/requirements/prod.txt +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/setup.cfg +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/setup.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/__init__.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/compat.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/__init__.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/__init__.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/_compat.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/assignment.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/constraint.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/failure.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/incompatibility.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/incompatibility_cause.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/package.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/package_source.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/partial_solution.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/result.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/set_relation.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/term.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/union.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/version_solver.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/semver/__init__.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/semver/empty_constraint.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/semver/exceptions.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/semver/patterns.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/semver/version.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/semver/version_constraint.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/semver/version_range.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/semver/version_union.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/package_source.py +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip.egg-info/SOURCES.txt +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip.egg-info/dependency_links.txt +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip.egg-info/entry_points.txt +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip.egg-info/requires.txt +0 -0
- {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
version = "0.10.14"
|
|
@@ -52,7 +52,12 @@ from pipgrip.libs.mixology.failure import SolverFailure
|
|
|
52
52
|
from pipgrip.libs.mixology.package import Package
|
|
53
53
|
from pipgrip.libs.mixology.version_solver import VersionSolver
|
|
54
54
|
from pipgrip.package_source import PackageSource, render_pin
|
|
55
|
-
from pipgrip.pipper import
|
|
55
|
+
from pipgrip.pipper import (
|
|
56
|
+
BUILD_FAILURE_STR,
|
|
57
|
+
REPORT_FAILURE_STR,
|
|
58
|
+
install_packages,
|
|
59
|
+
read_requirements,
|
|
60
|
+
)
|
|
56
61
|
|
|
57
62
|
logging.basicConfig(format="%(levelname)s: %(message)s")
|
|
58
63
|
logger = logging.getLogger()
|
|
@@ -479,7 +484,7 @@ def main(
|
|
|
479
484
|
exc = None
|
|
480
485
|
except RuntimeError as e:
|
|
481
486
|
# RuntimeError coming from pipgrip.pipper
|
|
482
|
-
if
|
|
487
|
+
if REPORT_FAILURE_STR not in str(e) and BUILD_FAILURE_STR not in str(e):
|
|
483
488
|
# only continue handling expected RuntimeErrors
|
|
484
489
|
raise
|
|
485
490
|
solution = solver.solution
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
#
|
|
32
32
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
33
33
|
# flake8: noqa:A002,A003
|
|
34
|
+
from copy import deepcopy
|
|
34
35
|
from typing import Any, NoReturn, Optional
|
|
35
36
|
from typing import Union as _Union
|
|
36
37
|
|
|
@@ -315,6 +316,21 @@ class Range(object):
|
|
|
315
316
|
return not self.include_max or not other.include_min
|
|
316
317
|
|
|
317
318
|
def is_strictly_higher(self, other): # type: (Range) -> bool
|
|
319
|
+
if (
|
|
320
|
+
self.is_single_version()
|
|
321
|
+
and self.max is not None
|
|
322
|
+
and other.max is not None
|
|
323
|
+
and self.max.is_prerelease()
|
|
324
|
+
and not other.max.is_prerelease()
|
|
325
|
+
and not other.include_max
|
|
326
|
+
and self.max.equals_without_prerelease(other.max)
|
|
327
|
+
):
|
|
328
|
+
# in pip, `<5`, `<5.0`, `<5.0.0` are shorthand for `<5.0.0-alpha.0`.
|
|
329
|
+
# e.g. `pip install --pre django<5.0` will not install django==5.0rc1
|
|
330
|
+
# although technically 5.0rc1 < 5.0 according to semver.
|
|
331
|
+
# mimic this behaviour here (check 5.0rc1 against <5.0.0-alpha.0)
|
|
332
|
+
other = deepcopy(other)
|
|
333
|
+
other._max = other.max.first_prerelease
|
|
318
334
|
return other.is_strictly_lower(self)
|
|
319
335
|
|
|
320
336
|
def is_adjacent_to(self, other): # type: (Range) -> bool
|
|
@@ -49,6 +49,10 @@ from pipgrip.compat import PIP_VERSION, urlparse
|
|
|
49
49
|
|
|
50
50
|
logger = logging.getLogger(__name__)
|
|
51
51
|
|
|
52
|
+
REPORT_FAILURE_STR = "Failed to get report for"
|
|
53
|
+
BUILD_FAILURE_STR = "Failed to download/build wheel for"
|
|
54
|
+
VERSIONS_FAILURE_STR = "Failed to get available versions for"
|
|
55
|
+
|
|
52
56
|
|
|
53
57
|
def read_requirements(path):
|
|
54
58
|
re_comments = re.compile(r"(?:^|\s+)#")
|
|
@@ -292,7 +296,7 @@ def _get_available_versions(package, index_url, extra_index_url, pre):
|
|
|
292
296
|
]
|
|
293
297
|
_available_versions_cache[cache_key] = available_versions
|
|
294
298
|
return available_versions
|
|
295
|
-
raise RuntimeError("
|
|
299
|
+
raise RuntimeError("{} {}".format(VERSIONS_FAILURE_STR, package))
|
|
296
300
|
|
|
297
301
|
|
|
298
302
|
def _get_package_report(
|
|
@@ -357,7 +361,7 @@ def _get_package_report(
|
|
|
357
361
|
package, output.strip()
|
|
358
362
|
)
|
|
359
363
|
)
|
|
360
|
-
raise RuntimeError("
|
|
364
|
+
raise RuntimeError("{} {}".format(REPORT_FAILURE_STR, package))
|
|
361
365
|
else:
|
|
362
366
|
with io.open(report_file, "r", encoding="utf-8") as fp:
|
|
363
367
|
return json.load(fp)
|
|
@@ -397,7 +401,7 @@ def _download_wheel(
|
|
|
397
401
|
package, output.strip()
|
|
398
402
|
)
|
|
399
403
|
)
|
|
400
|
-
raise RuntimeError("
|
|
404
|
+
raise RuntimeError("{} {}".format(BUILD_FAILURE_STR, package))
|
|
401
405
|
out = out.splitlines()[::-1]
|
|
402
406
|
abs_wheel_dir_lower = abs_wheel_dir.lower()
|
|
403
407
|
cwd_wheel_dir_lower = cwd_wheel_dir.lower()
|
|
@@ -474,7 +478,7 @@ def _download_wheel(
|
|
|
474
478
|
"\n".join(out[::-1])
|
|
475
479
|
)
|
|
476
480
|
)
|
|
477
|
-
raise RuntimeError("
|
|
481
|
+
raise RuntimeError("{} {}".format(BUILD_FAILURE_STR, package))
|
|
478
482
|
|
|
479
483
|
|
|
480
484
|
def _extract_metadata(wheel_fname):
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
version = "0.10.12"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|