Skip to content

Commit 4ed5e1a

Browse files
authored
refactor: use Package instead of DependencyPackage as key in overrides dict (python-poetry#8956)
1 parent a1878a3 commit 4ed5e1a

File tree

3 files changed

+12
-23
lines changed

3 files changed

+12
-23
lines changed

src/poetry/puzzle/exceptions.py

+3-5
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55

66
if TYPE_CHECKING:
77
from poetry.core.packages.dependency import Dependency
8+
from poetry.core.packages.package import Package
89

910
from poetry.mixology.failure import SolveFailure
10-
from poetry.packages import DependencyPackage
1111

1212

1313
class SolverProblemError(Exception):
@@ -22,11 +22,9 @@ def error(self) -> SolveFailure:
2222

2323

2424
class OverrideNeeded(Exception):
25-
def __init__(
26-
self, *overrides: dict[DependencyPackage, dict[str, Dependency]]
27-
) -> None:
25+
def __init__(self, *overrides: dict[Package, dict[str, Dependency]]) -> None:
2826
self._overrides = overrides
2927

3028
@property
31-
def overrides(self) -> tuple[dict[DependencyPackage, dict[str, Dependency]], ...]:
29+
def overrides(self) -> tuple[dict[Package, dict[str, Dependency]], ...]:
3230
return self._overrides

src/poetry/puzzle/provider.py

+7-15
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ def __init__(
125125
self._env: Env | None = None
126126
self._python_constraint = package.python_constraint
127127
self._is_debugging: bool = self._io.is_debug() or self._io.is_very_verbose()
128-
self._overrides: dict[DependencyPackage, dict[str, Dependency]] = {}
128+
self._overrides: dict[Package, dict[str, Dependency]] = {}
129129
self._deferred_cache: dict[Dependency, Package] = {}
130130
self._load_deferred = True
131131
self._source_root: Path | None = None
@@ -155,9 +155,7 @@ def use_latest(self) -> Collection[NormalizedName]:
155155
def is_debugging(self) -> bool:
156156
return self._is_debugging
157157

158-
def set_overrides(
159-
self, overrides: dict[DependencyPackage, dict[str, Dependency]]
160-
) -> None:
158+
def set_overrides(self, overrides: dict[Package, dict[str, Dependency]]) -> None:
161159
self._overrides = overrides
162160

163161
def load_deferred(self, load_deferred: bool) -> None:
@@ -383,7 +381,7 @@ def _search_for_url(self, dependency: URLDependency) -> Package:
383381
return package
384382

385383
def _get_dependencies_with_overrides(
386-
self, dependencies: list[Dependency], package: DependencyPackage
384+
self, dependencies: list[Dependency], package: Package
387385
) -> list[Dependency]:
388386
overrides = self._overrides.get(package, {})
389387
_dependencies = []
@@ -458,9 +456,7 @@ def incompatibilities_for(
458456
and self._python_constraint.allows_any(dep.python_constraint)
459457
and (not self._env or dep.marker.validate(self._env.marker_env))
460458
]
461-
dependencies = self._get_dependencies_with_overrides(
462-
_dependencies, dependency_package
463-
)
459+
dependencies = self._get_dependencies_with_overrides(_dependencies, package)
464460

465461
return [
466462
Incompatibility(
@@ -568,9 +564,7 @@ def complete_package(
568564
continue
569565
self.search_for_direct_origin_dependency(dep)
570566

571-
dependencies = self._get_dependencies_with_overrides(
572-
_dependencies, dependency_package
573-
)
567+
dependencies = self._get_dependencies_with_overrides(_dependencies, package)
574568

575569
# Searching for duplicate dependencies
576570
#
@@ -647,11 +641,9 @@ def fmt_warning(d: Dependency) -> str:
647641
for dep in deps:
648642
if not overrides_marker_intersection.intersect(dep.marker).is_empty():
649643
current_overrides = self._overrides.copy()
650-
package_overrides = current_overrides.get(
651-
dependency_package, {}
652-
).copy()
644+
package_overrides = current_overrides.get(package, {}).copy()
653645
package_overrides.update({dep.name: dep})
654-
current_overrides.update({dependency_package: package_overrides})
646+
current_overrides.update({package: package_overrides})
655647
overrides.append(current_overrides)
656648

657649
if overrides:

src/poetry/puzzle/solver.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
from poetry.core.packages.package import Package
2828
from poetry.core.packages.project_package import ProjectPackage
2929

30-
from poetry.packages import DependencyPackage
3130
from poetry.puzzle.transaction import Transaction
3231
from poetry.repositories import RepositoryPool
3332
from poetry.utils.env import Env
@@ -51,7 +50,7 @@ def __init__(
5150
self._provider = Provider(
5251
self._package, self._pool, self._io, installed=installed, locked=locked
5352
)
54-
self._overrides: list[dict[DependencyPackage, dict[str, Dependency]]] = []
53+
self._overrides: list[dict[Package, dict[str, Dependency]]] = []
5554

5655
@property
5756
def provider(self) -> Provider:
@@ -119,7 +118,7 @@ def _progress(self) -> Iterator[None]:
119118

120119
def _solve_in_compatibility_mode(
121120
self,
122-
overrides: tuple[dict[DependencyPackage, dict[str, Dependency]], ...],
121+
overrides: tuple[dict[Package, dict[str, Dependency]], ...],
123122
) -> tuple[list[Package], list[int]]:
124123
packages = []
125124
depths = []

0 commit comments

Comments
 (0)