diff --git a/src/poetry/puzzle/solver.py b/src/poetry/puzzle/solver.py index 97d548c3e8e..1fe47fe4350 100644 --- a/src/poetry/puzzle/solver.py +++ b/src/poetry/puzzle/solver.py @@ -139,12 +139,9 @@ def _solve(self, use_latest: list[str] = None) -> tuple[list[Package], list[int] except SolveFailure as e: raise SolverProblemError(e) - # NOTE passing explicit empty set for seen to reset between invocations during - # update + install cycle results = dict( depth_first_search( - PackageNode(self._package, packages, seen=set()), - aggregate_package_nodes, + PackageNode(self._package, packages), aggregate_package_nodes ) ) @@ -239,7 +236,6 @@ def __init__( self, package: Package, packages: list[Package], - seen: set[Package], previous: PackageNode | None = None, previous_dep: None | ( @@ -260,7 +256,6 @@ def __init__( ) -> None: self.package = package self.packages = packages - self.seen = seen self.previous = previous self.previous_dep = previous_dep @@ -287,12 +282,6 @@ def __init__( def reachable(self) -> list[PackageNode]: children: list[PackageNode] = [] - # skip already traversed packages - if self.package in self.seen: - return [] - - self.seen.add(self.package) - if ( self.dep and self.previous_dep @@ -329,7 +318,6 @@ def reachable(self) -> list[PackageNode]: PackageNode( pkg, self.packages, - self.seen, self, dependency, self.dep or dependency,