Commit cf213245 by Randy Döring Committed by Bjorn Neergaard

refactor(solver/provider): move progress() from Provider to Solver

parent 90c34887
......@@ -134,7 +134,6 @@ class Provider:
self._env: Env | None = None
self._python_constraint = package.python_constraint
self._is_debugging: bool = self._io.is_debug() or self._io.is_very_verbose()
self._in_progress = False
self._overrides: dict[DependencyPackage, dict[str, Dependency]] = {}
self._deferred_cache: dict[Dependency, Package] = {}
self._load_deferred = True
......@@ -888,24 +887,6 @@ class Provider:
self._io.write(debug_info)
@contextmanager
def progress(self) -> Iterator[None]:
if not self._io.output.is_decorated() or self.is_debugging():
self._io.write_line("Resolving dependencies...")
yield
else:
indicator = Indicator(
self._io, "{message}{context}<debug>({elapsed:2s})</debug>"
)
with indicator.auto(
"<info>Resolving dependencies...</info>",
"<info>Resolving dependencies...</info>",
):
yield
self._in_progress = False
def _merge_dependencies_by_constraint(
self, dependencies: Iterable[Dependency]
) -> list[Dependency]:
......
......@@ -16,6 +16,7 @@ from poetry.mixology.failure import SolveFailure
from poetry.packages import DependencyPackage
from poetry.puzzle.exceptions import OverrideNeeded
from poetry.puzzle.exceptions import SolverProblemError
from poetry.puzzle.provider import Indicator
from poetry.puzzle.provider import Provider
......@@ -64,7 +65,7 @@ class Solver:
def solve(self, use_latest: list[str] | None = None) -> Transaction:
from poetry.puzzle.transaction import Transaction
with self._provider.progress():
with self._progress():
start = time.time()
packages, depths = self._solve(use_latest=use_latest)
end = time.time()
......@@ -96,7 +97,23 @@ class Solver:
root_package=self._package,
)
def solve_in_compatibility_mode(
@contextmanager
def _progress(self) -> Iterator[None]:
if not self._io.output.is_decorated() or self._provider.is_debugging():
self._io.write_line("Resolving dependencies...")
yield
else:
indicator = Indicator(
self._io, "{message}{context}<debug>({elapsed:2s})</debug>"
)
with indicator.auto(
"<info>Resolving dependencies...</info>",
"<info>Resolving dependencies...</info>",
):
yield
def _solve_in_compatibility_mode(
self,
overrides: tuple[dict[DependencyPackage, dict[str, Dependency]], ...],
use_latest: list[str] | None = None,
......@@ -150,7 +167,7 @@ class Solver:
packages = result.packages
except OverrideNeeded as e:
return self.solve_in_compatibility_mode(e.overrides, use_latest=use_latest)
return self._solve_in_compatibility_mode(e.overrides, use_latest=use_latest)
except SolveFailure as e:
raise SolverProblemError(e)
......
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