|
6 | 6 |
|
7 | 7 | from __future__ import annotations
|
8 | 8 |
|
9 |
| -import collections |
10 | 9 | import copy
|
11 | 10 | import itertools
|
12 | 11 | import math
|
13 | 12 | import os
|
14 | 13 | import re
|
15 | 14 | from collections import defaultdict
|
16 |
| -from collections.abc import Generator, Iterable, Iterator |
17 | 15 | from enum import Enum
|
18 | 16 | from functools import cached_property
|
19 |
| -from typing import TYPE_CHECKING, Any, NamedTuple |
| 17 | +from typing import TYPE_CHECKING, NamedTuple |
20 | 18 |
|
21 | 19 | import astroid
|
22 | 20 | import astroid.exceptions
|
23 | 21 | from astroid import bases, extract_node, nodes, util
|
24 |
| -from astroid.nodes import _base_nodes |
25 |
| -from astroid.typing import InferenceResult |
26 | 22 |
|
27 | 23 | from pylint.checkers import BaseChecker, utils
|
28 | 24 | from pylint.checkers.utils import (
|
|
34 | 30 | )
|
35 | 31 | from pylint.constants import TYPING_NEVER, TYPING_NORETURN
|
36 | 32 | from pylint.interfaces import CONTROL_FLOW, HIGH, INFERENCE, INFERENCE_FAILURE
|
37 |
| -from pylint.typing import MessageDefinitionTuple |
38 | 33 |
|
39 | 34 | if TYPE_CHECKING:
|
| 35 | + from collections.abc import Generator, Iterable, Iterator |
| 36 | + from typing import Any |
| 37 | + |
| 38 | + from astroid.nodes import _base_nodes |
| 39 | + from astroid.typing import InferenceResult |
| 40 | + |
40 | 41 | from pylint.lint import PyLinter
|
| 42 | + from pylint.typing import MessageDefinitionTuple |
| 43 | + |
41 | 44 |
|
42 | 45 | SPECIAL_OBJ = re.compile("^_{2}[a-z]+_{2}$")
|
43 | 46 | FUTURE = "__future__"
|
@@ -541,7 +544,10 @@ class NamesConsumer:
|
541 | 544 |
|
542 | 545 | def __init__(self, node: nodes.NodeNG, scope_type: str) -> None:
|
543 | 546 | self._atomic = ScopeConsumer(
|
544 |
| - copy.copy(node.locals), {}, collections.defaultdict(list), scope_type |
| 547 | + copy.copy(node.locals), |
| 548 | + {}, |
| 549 | + defaultdict(list), |
| 550 | + scope_type, |
545 | 551 | )
|
546 | 552 | self.node = node
|
547 | 553 | self.names_under_always_false_test: set[str] = set()
|
@@ -3234,8 +3240,9 @@ def _check_imports(self, not_consumed: dict[str, list[nodes.NodeNG]]) -> None:
|
3234 | 3240 | local_names = _fix_dot_imports(not_consumed)
|
3235 | 3241 | checked = set()
|
3236 | 3242 | unused_wildcard_imports: defaultdict[
|
3237 |
| - tuple[str, nodes.ImportFrom], list[str] |
3238 |
| - ] = collections.defaultdict(list) |
| 3243 | + tuple[str, nodes.ImportFrom], |
| 3244 | + list[str], |
| 3245 | + ] = defaultdict(list) |
3239 | 3246 | for name, stmt in local_names:
|
3240 | 3247 | for imports in stmt.names:
|
3241 | 3248 | real_name = imported_name = imports[0]
|
|
0 commit comments