Commit 32871e89 by Randy Döring Committed by Arun Babu Neelicattu

refactor: access attribute _locked only via method _get_locked

parent cc4d6899
...@@ -413,7 +413,7 @@ class VersionSolver: ...@@ -413,7 +413,7 @@ class VersionSolver:
# prefer locked version of compatible (not exact same) dependency; # prefer locked version of compatible (not exact same) dependency;
# required in order to not unnecessarily update dependencies with # required in order to not unnecessarily update dependencies with
# extras, e.g. "coverage" vs. "coverage[toml]" # extras, e.g. "coverage" vs. "coverage[toml]"
locked = self._locked.get(dependency.name, None) locked = self._get_locked(dependency, allow_similar=True)
if locked is not None: if locked is not None:
package = next( package = next(
(p for p in packages if p.version == locked.version), None (p for p in packages if p.version == locked.version), None
...@@ -487,7 +487,9 @@ class VersionSolver: ...@@ -487,7 +487,9 @@ class VersionSolver:
incompatibility incompatibility
) )
def _get_locked(self, dependency: Dependency) -> Package | None: def _get_locked(
self, dependency: Dependency, *, allow_similar: bool = False
) -> Package | None:
if dependency.name in self._use_latest: if dependency.name in self._use_latest:
return None return None
...@@ -495,7 +497,7 @@ class VersionSolver: ...@@ -495,7 +497,7 @@ class VersionSolver:
if not locked: if not locked:
return None return None
if not dependency.is_same_package_as(locked): if not allow_similar and not dependency.is_same_package_as(locked):
return None return None
return locked return locked
......
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