Skip to content

Commit d7e6ee3

Browse files
committed
Fix type hints
1 parent 7cc013b commit d7e6ee3

File tree

4 files changed

+14
-10
lines changed

4 files changed

+14
-10
lines changed

src/pip/_internal/resolution/resolvelib/factory.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -742,7 +742,7 @@ def get_installation_error(
742742
# The simplest case is when we have *one* cause that can't be
743743
# satisfied. We just report that case.
744744
if len(e.causes) == 1:
745-
req, parent = e.causes[0]
745+
req, parent = next(iter(e.causes))
746746
if req.name not in constraints:
747747
return self._report_single_requirement_conflict(req, parent)
748748

src/pip/_internal/resolution/resolvelib/reporter.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from collections import defaultdict
22
from logging import getLogger
3-
from typing import Any, DefaultDict
3+
from typing import Any, DefaultDict, Optional
44

55
from pip._vendor.resolvelib.reporters import BaseReporter
66

@@ -9,7 +9,7 @@
99
logger = getLogger(__name__)
1010

1111

12-
class PipReporter(BaseReporter):
12+
class PipReporter(BaseReporter[Requirement, Candidate, Any]):
1313
def __init__(self) -> None:
1414
self.reject_count_by_package: DefaultDict[str, int] = defaultdict(int)
1515

@@ -55,7 +55,7 @@ def rejecting_candidate(self, criterion: Any, candidate: Candidate) -> None:
5555
logger.debug(msg)
5656

5757

58-
class PipDebuggingReporter(BaseReporter):
58+
class PipDebuggingReporter(BaseReporter[Requirement, Candidate, Any]):
5959
"""A reporter that does an info log for every event it sees."""
6060

6161
def starting(self) -> None:
@@ -71,7 +71,9 @@ def ending_round(self, index: int, state: Any) -> None:
7171
def ending(self, state: Any) -> None:
7272
logger.info("Reporter.ending(%r)", state)
7373

74-
def adding_requirement(self, requirement: Requirement, parent: Candidate) -> None:
74+
def adding_requirement(
75+
self, requirement: Requirement, parent: Optional[Candidate]
76+
) -> None:
7577
logger.info("Reporter.adding_requirement(%r, %r)", requirement, parent)
7678

7779
def rejecting_candidate(self, criterion: Any, candidate: Candidate) -> None:

src/pip/_internal/resolution/resolvelib/resolver.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import functools
33
import logging
44
import os
5-
from typing import TYPE_CHECKING, Dict, List, Optional, Set, Tuple, cast
5+
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Set, Tuple, cast
66

77
from pip._vendor.packaging.utils import canonicalize_name
88
from pip._vendor.resolvelib import BaseReporter, ResolutionImpossible
@@ -82,7 +82,7 @@ def resolve(
8282
user_requested=collected.user_requested,
8383
)
8484
if "PIP_RESOLVER_DEBUG" in os.environ:
85-
reporter: BaseReporter = PipDebuggingReporter()
85+
reporter: BaseReporter[Requirement, Candidate, Any] = PipDebuggingReporter()
8686
else:
8787
reporter = PipReporter()
8888
resolver: RLResolver[Requirement, Candidate, str] = RLResolver(

tests/unit/resolution_resolvelib/test_provider.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from pip._internal.models.candidate import InstallationCandidate
66
from pip._internal.models.link import Link
77
from pip._internal.req.constructors import install_req_from_req_string
8+
from pip._internal.resolution.resolvelib.base import Candidate
89
from pip._internal.resolution.resolvelib.factory import Factory
910
from pip._internal.resolution.resolvelib.provider import PipProvider
1011
from pip._internal.resolution.resolvelib.requirements import SpecifierRequirement
@@ -14,13 +15,13 @@
1415

1516

1617
def build_requirement_information(
17-
name: str, parent: Optional[InstallationCandidate]
18+
name: str, parent: Optional[Candidate]
1819
) -> List["PreferenceInformation"]:
1920
install_requirement = install_req_from_req_string(name)
2021
# RequirementInformation is typed as a tuple, but it is a namedtupled.
2122
# https://github.com/sarugaku/resolvelib/blob/7bc025aa2a4e979597c438ad7b17d2e8a08a364e/src/resolvelib/resolvers.pyi#L20-L22
2223
requirement_information: PreferenceInformation = RequirementInformation(
23-
requirement=SpecifierRequirement(install_requirement), # type: ignore[call-arg]
24+
requirement=SpecifierRequirement(install_requirement),
2425
parent=parent,
2526
)
2627
return [requirement_information]
@@ -60,7 +61,8 @@ def test_provider_known_depths(factory: Factory) -> None:
6061
transitive_requirement_name = "my-transitive-package"
6162

6263
transitive_package_information = build_requirement_information(
63-
name=transitive_requirement_name, parent=root_package_candidate
64+
name=transitive_requirement_name,
65+
parent=root_package_candidate, # type: ignore
6466
)
6567
provider.get_preference(
6668
identifier=transitive_requirement_name,

0 commit comments

Comments
 (0)