diff options
Diffstat (limited to 'pylint')
-rw-r--r-- | pylint/checkers/classes/class_checker.py | 4 | ||||
-rw-r--r-- | pylint/checkers/typecheck.py | 4 | ||||
-rw-r--r-- | pylint/pyreverse/vcg_printer.py | 2 | ||||
-rw-r--r-- | pylint/typing.py | 10 |
4 files changed, 13 insertions, 7 deletions
diff --git a/pylint/checkers/classes/class_checker.py b/pylint/checkers/classes/class_checker.py index 5ae558822..44d94058e 100644 --- a/pylint/checkers/classes/class_checker.py +++ b/pylint/checkers/classes/class_checker.py @@ -257,7 +257,7 @@ def _has_different_parameters_default_value( def _has_different_parameters( original: list[nodes.AssignName], overridden: list[nodes.AssignName], - dummy_parameter_regex: Pattern, + dummy_parameter_regex: Pattern[str], ) -> list[str]: result: list[str] = [] zipped = zip_longest(original, overridden) @@ -311,7 +311,7 @@ def _has_different_keyword_only_parameters( def _different_parameters( original: nodes.FunctionDef, overridden: nodes.FunctionDef, - dummy_parameter_regex: Pattern, + dummy_parameter_regex: Pattern[str], ) -> list[str]: """Determine if the two methods have different parameters. diff --git a/pylint/checkers/typecheck.py b/pylint/checkers/typecheck.py index f2518beae..5823a5ea5 100644 --- a/pylint/checkers/typecheck.py +++ b/pylint/checkers/typecheck.py @@ -974,7 +974,7 @@ accessed. Python regular expressions are accepted.", return self.linter.config.suggestion_mode @cached_property - def _compiled_generated_members(self) -> tuple[Pattern, ...]: + def _compiled_generated_members(self) -> tuple[Pattern[str], ...]: # do this lazily since config not fully initialized in __init__ # generated_members may contain regular expressions # (surrounded by quote `"` and followed by a comma `,`) @@ -1928,7 +1928,7 @@ accessed. Python regular expressions are accepted.", if not allowed_nested_syntax: self._check_unsupported_alternative_union_syntax(node) - def _includes_version_compatible_overload(self, attrs: list): + def _includes_version_compatible_overload(self, attrs: list[nodes.NodeNG]): """Check if a set of overloads of an operator includes one that can be relied upon for our configured Python version. diff --git a/pylint/pyreverse/vcg_printer.py b/pylint/pyreverse/vcg_printer.py index ec7152baa..fe94edab4 100644 --- a/pylint/pyreverse/vcg_printer.py +++ b/pylint/pyreverse/vcg_printer.py @@ -154,7 +154,7 @@ SHAPES: dict[NodeType, str] = { NodeType.CLASS: "box", NodeType.INTERFACE: "ellipse", } -ARROWS: dict[EdgeType, dict] = { +ARROWS: dict[EdgeType, dict[str, str | int]] = { EdgeType.USES: dict(arrowstyle="solid", backarrowstyle="none", backarrowsize=0), EdgeType.INHERITS: dict( arrowstyle="solid", backarrowstyle="none", backarrowsize=10 diff --git a/pylint/typing.py b/pylint/typing.py index 224e0bd6b..6e6f88bfd 100644 --- a/pylint/typing.py +++ b/pylint/typing.py @@ -24,12 +24,13 @@ from typing import ( ) if sys.version_info >= (3, 8): - from typing import Literal, TypedDict + from typing import Literal, Protocol, TypedDict else: - from typing_extensions import Literal, TypedDict + from typing_extensions import Literal, Protocol, TypedDict if TYPE_CHECKING: from pylint.config.callback_actions import _CallbackAction + from pylint.pyreverse.inspector import Project from pylint.reporters.ureports.nodes import Section from pylint.utils import LinterStats @@ -132,3 +133,8 @@ MessageDefinitionTuple = Union[ ] # Mypy doesn't support recursive types (yet), see https://github.com/python/mypy/issues/731 DirectoryNamespaceDict = Dict[Path, Tuple[argparse.Namespace, "DirectoryNamespaceDict"]] # type: ignore[misc] + + +class GetProjectCallable(Protocol): + def __call__(self, module: str, name: str | None = "No Name") -> Project: + ... # pragma: no cover |