Commit d34dba71 by Randy Döring Committed by Arun Babu Neelicattu

refactor: move logic to get suitable locked package inside _get_locked

parent 32871e89
...@@ -368,11 +368,7 @@ class VersionSolver: ...@@ -368,11 +368,7 @@ class VersionSolver:
return not dependency.marker.is_any(), 1 return not dependency.marker.is_any(), 1
locked = self._get_locked(dependency) locked = self._get_locked(dependency)
if locked and ( if locked:
dependency.constraint.allows(locked.version)
or locked.is_prerelease()
and dependency.constraint.allows(locked.version.next_patch())
):
return not dependency.marker.is_any(), 1 return not dependency.marker.is_any(), 1
# VCS, URL, File or Directory dependencies # VCS, URL, File or Directory dependencies
...@@ -399,7 +395,7 @@ class VersionSolver: ...@@ -399,7 +395,7 @@ class VersionSolver:
dependency = min(*unsatisfied, key=_get_min) dependency = min(*unsatisfied, key=_get_min)
locked = self._get_locked(dependency) locked = self._get_locked(dependency)
if locked is None or not dependency.constraint.allows(locked.version): if locked is None:
try: try:
packages = self._dependency_cache.search_for(dependency) packages = self._dependency_cache.search_for(dependency)
except ValueError as e: except ValueError as e:
...@@ -500,6 +496,13 @@ class VersionSolver: ...@@ -500,6 +496,13 @@ class VersionSolver:
if not allow_similar and not dependency.is_same_package_as(locked): if not allow_similar and not dependency.is_same_package_as(locked):
return None return None
if not (
dependency.constraint.allows(locked.version)
or locked.is_prerelease()
and dependency.constraint.allows(locked.version.next_patch())
):
return None
return locked return locked
def _log(self, text: str) -> None: def _log(self, text: str) -> None:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment