diff --git a/src/poetry/mixology/incompatibility.py b/src/poetry/mixology/incompatibility.py index b629ea7a699..8ac85731a17 100644 --- a/src/poetry/mixology/incompatibility.py +++ b/src/poetry/mixology/incompatibility.py @@ -5,7 +5,6 @@ from poetry.mixology.incompatibility_cause import ConflictCause from poetry.mixology.incompatibility_cause import DependencyCause from poetry.mixology.incompatibility_cause import NoVersionsCause -from poetry.mixology.incompatibility_cause import PackageNotFoundCause from poetry.mixology.incompatibility_cause import PlatformCause from poetry.mixology.incompatibility_cause import PythonCause from poetry.mixology.incompatibility_cause import RootCause @@ -146,11 +145,6 @@ def __str__(self) -> str: f"no versions of {self._terms[0].dependency.name} match" f" {self._terms[0].constraint}" ) - elif isinstance(self._cause, PackageNotFoundCause): - assert len(self._terms) == 1 - assert self._terms[0].is_positive() - - return f"{self._terms[0].dependency.name} doesn't exist" elif isinstance(self._cause, RootCause): assert len(self._terms) == 1 assert not self._terms[0].is_positive() @@ -420,8 +414,6 @@ def _try_requires_forbidden( buffer.append(f"which requires Python {cause.python_version}") elif isinstance(latter.cause, NoVersionsCause): buffer.append("which doesn't match any versions") - elif isinstance(latter.cause, PackageNotFoundCause): - buffer.append("which doesn't exist") else: buffer.append("which is forbidden") diff --git a/src/poetry/mixology/incompatibility_cause.py b/src/poetry/mixology/incompatibility_cause.py index 87eee3eef16..1536d1b22b2 100644 --- a/src/poetry/mixology/incompatibility_cause.py +++ b/src/poetry/mixology/incompatibility_cause.py @@ -79,17 +79,3 @@ def __init__(self, platform: str) -> None: @property def platform(self) -> str: return self._platform - - -class PackageNotFoundCause(IncompatibilityCause): - """ - The incompatibility represents a package that couldn't be found by its - source. - """ - - def __init__(self, error: Exception) -> None: - self._error = error - - @property - def error(self) -> Exception: - return self._error diff --git a/src/poetry/mixology/version_solver.py b/src/poetry/mixology/version_solver.py index 06ae39443e0..6c66dc4c5e9 100644 --- a/src/poetry/mixology/version_solver.py +++ b/src/poetry/mixology/version_solver.py @@ -3,7 +3,6 @@ import functools import time -from contextlib import suppress from typing import TYPE_CHECKING from poetry.core.packages.dependency import Dependency @@ -12,7 +11,6 @@ from poetry.mixology.incompatibility import Incompatibility from poetry.mixology.incompatibility_cause import ConflictCause from poetry.mixology.incompatibility_cause import NoVersionsCause -from poetry.mixology.incompatibility_cause import PackageNotFoundCause from poetry.mixology.incompatibility_cause import RootCause from poetry.mixology.partial_solution import PartialSolution from poetry.mixology.result import SolverResult @@ -395,10 +393,8 @@ def _get_min(dependency: Dependency) -> tuple[bool, int, int]: if locked: return is_specific_marker, Preference.LOCKED, 1 - try: - num_packages = len(self._dependency_cache.search_for(dependency)) - except ValueError: - num_packages = 0 + num_packages = len(self._dependency_cache.search_for(dependency)) + if num_packages < 2: preference = Preference.NO_CHOICE elif use_latest: @@ -414,28 +410,8 @@ def _get_min(dependency: Dependency) -> tuple[bool, int, int]: locked = self._provider.get_locked(dependency) if locked is None: - try: - packages = self._dependency_cache.search_for(dependency) - except ValueError as e: - self._add_incompatibility( - Incompatibility([Term(dependency, True)], PackageNotFoundCause(e)) - ) - complete_name: str = dependency.complete_name - return complete_name - - package = None - if locked is not None: - package = next( - ( - p - for p in packages - if p.package.version == locked.package.version - ), - None, - ) - if package is None: - with suppress(IndexError): - package = packages[0] + packages = self._dependency_cache.search_for(dependency) + package = next(iter(packages), None) if package is None: # If there are no versions that satisfy the constraint,