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.
Files changed (44) hide show
  1. {pipgrip-0.10.12/src/pipgrip.egg-info → pipgrip-0.10.14}/PKG-INFO +1 -1
  2. pipgrip-0.10.14/src/pipgrip/_repo_version.py +1 -0
  3. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/cli.py +7 -2
  4. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/range.py +16 -0
  5. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/pipper.py +8 -4
  6. {pipgrip-0.10.12 → pipgrip-0.10.14/src/pipgrip.egg-info}/PKG-INFO +1 -1
  7. pipgrip-0.10.12/src/pipgrip/_repo_version.py +0 -1
  8. {pipgrip-0.10.12 → pipgrip-0.10.14}/LICENSE +0 -0
  9. {pipgrip-0.10.12 → pipgrip-0.10.14}/README.md +0 -0
  10. {pipgrip-0.10.12 → pipgrip-0.10.14}/requirements/prod.txt +0 -0
  11. {pipgrip-0.10.12 → pipgrip-0.10.14}/setup.cfg +0 -0
  12. {pipgrip-0.10.12 → pipgrip-0.10.14}/setup.py +0 -0
  13. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/__init__.py +0 -0
  14. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/compat.py +0 -0
  15. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/__init__.py +0 -0
  16. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/__init__.py +0 -0
  17. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/_compat.py +0 -0
  18. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/assignment.py +0 -0
  19. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/constraint.py +0 -0
  20. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/failure.py +0 -0
  21. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/incompatibility.py +0 -0
  22. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/incompatibility_cause.py +0 -0
  23. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/package.py +0 -0
  24. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/package_source.py +0 -0
  25. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/partial_solution.py +0 -0
  26. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/result.py +0 -0
  27. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/set_relation.py +0 -0
  28. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/term.py +0 -0
  29. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/union.py +0 -0
  30. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/mixology/version_solver.py +0 -0
  31. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/semver/__init__.py +0 -0
  32. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/semver/empty_constraint.py +0 -0
  33. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/semver/exceptions.py +0 -0
  34. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/semver/patterns.py +0 -0
  35. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/semver/version.py +0 -0
  36. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/semver/version_constraint.py +0 -0
  37. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/semver/version_range.py +0 -0
  38. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/libs/semver/version_union.py +0 -0
  39. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip/package_source.py +0 -0
  40. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip.egg-info/SOURCES.txt +0 -0
  41. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip.egg-info/dependency_links.txt +0 -0
  42. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip.egg-info/entry_points.txt +0 -0
  43. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip.egg-info/requires.txt +0 -0
  44. {pipgrip-0.10.12 → pipgrip-0.10.14}/src/pipgrip.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pipgrip
3
- Version: 0.10.12
3
+ Version: 0.10.14
4
4
  Summary: Lightweight pip dependency resolver with deptree preview functionality based on the PubGrub algorithm
5
5
  Home-page: https://github.com/ddelange/pipgrip
6
6
  Author: ddelange
@@ -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 install_packages, read_requirements
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 "Failed to download/build wheel" not in str(e):
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("Failed to get available versions for {}".format(package))
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("Failed to get report for {}".format(package))
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("Failed to download/build wheel for {}".format(package))
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("Failed to download/build wheel for {}".format(package))
481
+ raise RuntimeError("{} {}".format(BUILD_FAILURE_STR, package))
478
482
 
479
483
 
480
484
  def _extract_metadata(wheel_fname):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pipgrip
3
- Version: 0.10.12
3
+ Version: 0.10.14
4
4
  Summary: Lightweight pip dependency resolver with deptree preview functionality based on the PubGrub algorithm
5
5
  Home-page: https://github.com/ddelange/pipgrip
6
6
  Author: ddelange
@@ -1 +0,0 @@
1
- version = "0.10.12"
File without changes
File without changes
File without changes
File without changes