summaryrefslogtreecommitdiff
path: root/src/pip/_internal/resolution/resolvelib/resolver.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/pip/_internal/resolution/resolvelib/resolver.py')
-rw-r--r--src/pip/_internal/resolution/resolvelib/resolver.py13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/pip/_internal/resolution/resolvelib/resolver.py b/src/pip/_internal/resolution/resolvelib/resolver.py
index 7826cfc0f..4f8a53d0d 100644
--- a/src/pip/_internal/resolution/resolvelib/resolver.py
+++ b/src/pip/_internal/resolution/resolvelib/resolver.py
@@ -5,7 +5,7 @@ from typing import TYPE_CHECKING, Dict, List, Optional, Set, Tuple
from pip._vendor.packaging.utils import canonicalize_name
from pip._vendor.packaging.version import parse as parse_version
-from pip._vendor.resolvelib import ResolutionImpossible
+from pip._vendor.resolvelib import BaseReporter, ResolutionImpossible
from pip._vendor.resolvelib import Resolver as RLResolver
from pip._vendor.resolvelib.resolvers import Result
@@ -32,7 +32,7 @@ from .base import Constraint
from .factory import Factory
if TYPE_CHECKING:
- from pip._vendor.resolvelib.structs import Graph
+ from pip._vendor.resolvelib.structs import DirectedGraph
logger = logging.getLogger(__name__)
@@ -86,6 +86,7 @@ class Resolver(BaseResolver):
raise InstallationError(problem)
if not req.match_markers():
continue
+ assert req.name, "Constraint must be named"
name = canonicalize_name(req.name)
if name in constraints:
constraints[name] &= req
@@ -110,14 +111,14 @@ class Resolver(BaseResolver):
user_requested=user_requested,
)
if "PIP_RESOLVER_DEBUG" in os.environ:
- reporter = PipDebuggingReporter()
+ reporter = PipDebuggingReporter() # type: BaseReporter
else:
reporter = PipReporter()
resolver = RLResolver(provider, reporter)
try:
try_to_avoid_resolution_too_deep = 2000000
- self._result = resolver.resolve(
+ result = self._result = resolver.resolve(
requirements, max_rounds=try_to_avoid_resolution_too_deep
)
@@ -126,7 +127,7 @@ class Resolver(BaseResolver):
raise error from e
req_set = RequirementSet(check_supported_wheels=check_supported_wheels)
- for candidate in self._result.mapping.values():
+ for candidate in result.mapping.values():
ireq = candidate.get_install_requirement()
if ireq is None:
continue
@@ -235,7 +236,7 @@ class Resolver(BaseResolver):
def get_topological_weights(graph, expected_node_count):
- # type: (Graph, int) -> Dict[Optional[str], int]
+ # type: (DirectedGraph, int) -> Dict[Optional[str], int]
"""Assign weights to each node based on how "deep" they are.
This implementation may change at any point in the future without prior