Skip to content

Commit fb79994

Browse files
authored
[pyflakes] Update to 3.3.* (#13745)
1 parent 740a5ee commit fb79994

File tree

5 files changed

+92
-88
lines changed

5 files changed

+92
-88
lines changed

stubs/pyflakes/@tests/stubtest_allowlist.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,5 @@ pyflakes.messages.UndefinedLocal.message_args
2222
pyflakes.messages.UndefinedName.message_args
2323
pyflakes.messages.UnusedAnnotation.message_args
2424
pyflakes.messages.UnusedImport.message_args
25+
pyflakes.messages.UnusedIndirectAssignment.message_args
2526
pyflakes.messages.UnusedVariable.message_args

stubs/pyflakes/METADATA.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version = "3.2.*"
1+
version = "3.3.*"
22
upstream_repository = "https://github.com/PyCQA/pyflakes"
33
partial_stub = true
44

stubs/pyflakes/pyflakes/api.pyi

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1+
from _typeshed import Incomplete
12
from collections.abc import Iterable, Iterator, Sequence
23
from re import Pattern
3-
from typing import Any
44

55
from pyflakes.reporter import Reporter
66

@@ -11,6 +11,6 @@ PYTHON_SHEBANG_REGEX: Pattern[bytes]
1111
def check(codeString: str, filename: str, reporter: Reporter | None = None) -> int: ...
1212
def checkPath(filename, reporter: Reporter | None = None) -> int: ...
1313
def isPythonFile(filename) -> bool: ...
14-
def iterSourceCode(paths: Iterable[Any]) -> Iterator[Any]: ...
15-
def checkRecursive(paths: Iterable[Any], reporter: Reporter) -> int: ...
16-
def main(prog: str | None = None, args: Sequence[Any] | None = None) -> None: ...
14+
def iterSourceCode(paths: Iterable[Incomplete]) -> Iterator[Incomplete]: ...
15+
def checkRecursive(paths: Iterable[Incomplete], reporter: Reporter) -> int: ...
16+
def main(prog: str | None = None, args: Sequence[Incomplete] | None = None) -> None: ...

stubs/pyflakes/pyflakes/checker.pyi

Lines changed: 27 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
import ast
22
import sys
3+
from _typeshed import Incomplete
34
from collections.abc import Callable, Generator, Iterable, Iterator
45
from contextlib import contextmanager
56
from re import Pattern
67
from typing import Any, ClassVar, Literal, TypeVar, overload
7-
from typing_extensions import ParamSpec, TypeAlias
8+
from typing_extensions import Never, ParamSpec, TypeAlias
89

910
from pyflakes.messages import Message
1011

1112
_AnyFunction: TypeAlias = Callable[..., Any]
1213
_F = TypeVar("_F", bound=_AnyFunction)
1314
_P = ParamSpec("_P")
14-
_T = TypeVar("_T")
1515

1616
PYPY: bool
1717

@@ -33,27 +33,23 @@ def parse_percent_format(s: str) -> tuple[_PercentFormat, ...]: ...
3333
class _FieldsOrder(dict[type[ast.AST], tuple[str, ...]]):
3434
def __missing__(self, node_class: type[ast.AST]) -> tuple[str, ...]: ...
3535

36-
def counter(items: Iterable[_T]) -> dict[_T, int]: ...
37-
3836
_OmitType: TypeAlias = str | tuple[str, ...] | None
3937

4038
def iter_child_nodes(node: ast.AST, omit: _OmitType = None, _fields_order: _FieldsOrder = ...) -> Iterator[ast.AST]: ...
4139
@overload
42-
def convert_to_value(item: ast.Str) -> str: ... # type: ignore[overload-overlap]
43-
@overload
44-
def convert_to_value(item: ast.Bytes) -> bytes: ... # type: ignore[overload-overlap]
40+
def convert_to_value(item: ast.Constant) -> Any: ... # type: ignore[overload-overlap] # See ast.Constant.value for possible return types
4541
@overload
46-
def convert_to_value(item: ast.Tuple) -> tuple[Any, ...]: ... # type: ignore[overload-overlap]
42+
def convert_to_value(item: ast.Tuple) -> tuple[Any, ...]: ... # type: ignore[overload-overlap] # Tuple items depend on their ast type
4743
@overload
48-
def convert_to_value(item: ast.Name | ast.NameConstant) -> Any: ...
44+
def convert_to_value(item: ast.Name) -> VariableKey: ... # type: ignore[overload-overlap]
4945
@overload
5046
def convert_to_value(item: ast.AST) -> UnhandledKeyType: ...
5147
def is_notimplemented_name_node(node: object) -> bool: ...
5248

5349
class Binding:
5450
name: str
5551
source: ast.AST | None
56-
used: Literal[False] | tuple[Any, ast.AST]
52+
used: Literal[False] | tuple[Incomplete, ast.AST]
5753
def __init__(self, name: str, source: ast.AST | None) -> None: ...
5854
def redefines(self, other: Binding) -> bool: ...
5955

@@ -72,7 +68,7 @@ class VariableKey:
7268

7369
class Importation(Definition):
7470
fullName: str
75-
redefined: list[Any]
71+
redefined: list[Incomplete]
7672
def __init__(self, name: str, source: ast.AST | None, full_name: str | None = None) -> None: ...
7773
@property
7874
def source_statement(self) -> str: ...
@@ -89,7 +85,7 @@ class StarImportation(Importation):
8985
def __init__(self, name: str, source: ast.AST) -> None: ...
9086

9187
class FutureImportation(ImportationFrom):
92-
used: tuple[Any, ast.AST]
88+
used: tuple[Incomplete, ast.AST]
9389
def __init__(self, name: str, source: ast.AST, scope) -> None: ...
9490

9591
class Argument(Binding): ...
@@ -114,7 +110,7 @@ class FunctionScope(Scope):
114110
usesLocals: bool
115111
alwaysUsed: ClassVar[set[str]]
116112
globals: set[str]
117-
returnValue: Any
113+
returnValue: Incomplete
118114
isGenerator: bool
119115
def __init__(self) -> None: ...
120116
def unused_assignments(self) -> Iterator[tuple[str, Binding]]: ...
@@ -154,42 +150,44 @@ if sys.version_info >= (3, 10):
154150
_MatchAs: TypeAlias = ast.MatchAs
155151
_MatchOr: TypeAlias = ast.MatchOr
156152
else:
157-
_Match: TypeAlias = Any
158-
_MatchCase: TypeAlias = Any
159-
_MatchValue: TypeAlias = Any
160-
_MatchSingleton: TypeAlias = Any
161-
_MatchSequence: TypeAlias = Any
162-
_MatchStar: TypeAlias = Any
163-
_MatchMapping: TypeAlias = Any
164-
_MatchClass: TypeAlias = Any
165-
_MatchAs: TypeAlias = Any
166-
_MatchOr: TypeAlias = Any
153+
# The methods using these should never be called on Python < 3.10.
154+
_Match: TypeAlias = Never
155+
_MatchCase: TypeAlias = Never
156+
_MatchValue: TypeAlias = Never
157+
_MatchSingleton: TypeAlias = Never
158+
_MatchSequence: TypeAlias = Never
159+
_MatchStar: TypeAlias = Never
160+
_MatchMapping: TypeAlias = Never
161+
_MatchClass: TypeAlias = Never
162+
_MatchAs: TypeAlias = Never
163+
_MatchOr: TypeAlias = Never
167164

168165
if sys.version_info >= (3, 12):
169166
_TypeVar: TypeAlias = ast.TypeVar
170167
_TypeAlias: TypeAlias = ast.TypeAlias
171168
else:
172-
_TypeVar: TypeAlias = Any
173-
_TypeAlias: TypeAlias = Any
169+
# The methods using these should never be called on Python < 3.12.
170+
_TypeVar: TypeAlias = Never
171+
_TypeAlias: TypeAlias = Never
174172

175173
class Checker:
176174
nodeDepth: int
177175
offset: tuple[int, int] | None
178176
builtIns: set[str]
179-
deadScopes: list[Any]
180-
messages: list[Any]
177+
deadScopes: list[Incomplete]
178+
messages: list[Incomplete]
181179
filename: str
182180
withDoctest: bool
183181
scopeStack: list[Scope]
184-
exceptHandlers: list[Any]
182+
exceptHandlers: list[Incomplete]
185183
root: ast.AST
186184
def __init__(
187185
self,
188186
tree: ast.AST,
189187
filename: str = "(none)",
190188
builtins: Iterable[str] | None = None,
191189
withDoctest: bool = False,
192-
file_tokens: tuple[Any, ...] = (),
190+
file_tokens: tuple[Incomplete, ...] = (),
193191
) -> None: ...
194192
def deferFunction(self, callable: _AnyFunction) -> None: ...
195193
@property

stubs/pyflakes/pyflakes/messages.pyi

Lines changed: 59 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,88 @@
11
import ast
2+
from _typeshed import Incomplete
23
from typing import Any, ClassVar
34

45
class Message:
56
message: ClassVar[str]
6-
message_args: tuple[Any, ...]
7-
filename: Any
7+
message_args: tuple[Any, ...] # Tuple types differ between sub-classes.
8+
filename: str
89
lineno: int
910
col: int
10-
def __init__(self, filename, loc: ast.AST) -> None: ...
11+
def __init__(self, filename: str, loc: ast.AST) -> None: ...
1112

1213
class UnusedImport(Message):
13-
message_args: tuple[Any]
14-
def __init__(self, filename, loc: ast.AST, name) -> None: ...
14+
message_args: tuple[Incomplete]
15+
def __init__(self, filename: str, loc: ast.AST, name) -> None: ...
1516

1617
class RedefinedWhileUnused(Message):
17-
message_args: tuple[Any, int]
18-
def __init__(self, filename, loc: ast.AST, name, orig_loc: ast.AST) -> None: ...
18+
message_args: tuple[Incomplete, int]
19+
def __init__(self, filename: str, loc: ast.AST, name, orig_loc: ast.AST) -> None: ...
1920

2021
class ImportShadowedByLoopVar(Message):
21-
message_args: tuple[Any, int]
22-
def __init__(self, filename, loc: ast.AST, name, orig_loc: ast.AST) -> None: ...
22+
message_args: tuple[Incomplete, int]
23+
def __init__(self, filename: str, loc: ast.AST, name, orig_loc: ast.AST) -> None: ...
2324

2425
class ImportStarNotPermitted(Message):
25-
message_args: Any
26-
def __init__(self, filename, loc, modname) -> None: ...
26+
message_args: Incomplete
27+
def __init__(self, filename: str, loc, modname) -> None: ...
2728

2829
class ImportStarUsed(Message):
29-
message_args: tuple[Any]
30-
def __init__(self, filename, loc: ast.AST, modname) -> None: ...
30+
message_args: tuple[Incomplete]
31+
def __init__(self, filename: str, loc: ast.AST, modname) -> None: ...
3132

3233
class ImportStarUsage(Message):
33-
message_args: tuple[Any, Any]
34-
def __init__(self, filename, loc: ast.AST, name, from_list) -> None: ...
34+
message_args: tuple[Incomplete, Incomplete]
35+
def __init__(self, filename: str, loc: ast.AST, name, from_list) -> None: ...
3536

3637
class UndefinedName(Message):
37-
message_args: tuple[Any]
38-
def __init__(self, filename, loc: ast.AST, name) -> None: ...
38+
message_args: tuple[Incomplete]
39+
def __init__(self, filename: str, loc: ast.AST, name) -> None: ...
3940

4041
class DoctestSyntaxError(Message):
4142
message_args: tuple[()]
42-
def __init__(self, filename, loc: ast.AST, position: tuple[int, int] | None = None) -> None: ...
43+
def __init__(self, filename: str, loc: ast.AST, position: tuple[int, int] | None = None) -> None: ...
4344

4445
class UndefinedExport(Message):
45-
message_args: tuple[Any]
46-
def __init__(self, filename, loc: ast.AST, name) -> None: ...
46+
message_args: tuple[Incomplete]
47+
def __init__(self, filename: str, loc: ast.AST, name) -> None: ...
4748

4849
class UndefinedLocal(Message):
4950
default: ClassVar[str]
5051
builtin: ClassVar[str]
51-
message_args: tuple[Any, int]
52-
def __init__(self, filename, loc: ast.AST, name, orig_loc: ast.AST) -> None: ...
52+
message_args: tuple[Incomplete, int]
53+
def __init__(self, filename: str, loc: ast.AST, name, orig_loc: ast.AST) -> None: ...
5354

5455
class DuplicateArgument(Message):
55-
message_args: tuple[Any]
56-
def __init__(self, filename, loc: ast.AST, name) -> None: ...
56+
message_args: tuple[Incomplete]
57+
def __init__(self, filename: str, loc: ast.AST, name) -> None: ...
5758

5859
class MultiValueRepeatedKeyLiteral(Message):
59-
message_args: tuple[Any]
60-
def __init__(self, filename, loc: ast.AST, key) -> None: ...
60+
message_args: tuple[Incomplete]
61+
def __init__(self, filename: str, loc: ast.AST, key) -> None: ...
6162

6263
class MultiValueRepeatedKeyVariable(Message):
63-
message_args: tuple[Any]
64-
def __init__(self, filename, loc: ast.AST, key) -> None: ...
64+
message_args: tuple[Incomplete]
65+
def __init__(self, filename: str, loc: ast.AST, key) -> None: ...
6566

6667
class LateFutureImport(Message):
6768
message_args: tuple[()]
68-
def __init__(self, filename, loc: ast.AST) -> None: ...
69+
def __init__(self, filename: str, loc: ast.AST) -> None: ...
6970

7071
class FutureFeatureNotDefined(Message):
71-
message_args: tuple[Any]
72-
def __init__(self, filename, loc: ast.AST, name) -> None: ...
72+
message_args: tuple[Incomplete]
73+
def __init__(self, filename: str, loc: ast.AST, name) -> None: ...
7374

7475
class UnusedVariable(Message):
75-
message_args: tuple[Any]
76-
def __init__(self, filename, loc: ast.AST, names) -> None: ...
76+
message_args: tuple[Incomplete]
77+
def __init__(self, filename: str, loc: ast.AST, names) -> None: ...
7778

7879
class UnusedAnnotation(Message):
79-
message_args: tuple[Any]
80-
def __init__(self, filename, loc: ast.AST, names) -> None: ...
80+
message_args: tuple[Incomplete]
81+
def __init__(self, filename: str, loc: ast.AST, names) -> None: ...
82+
83+
class UnusedIndirectAssignment(Message):
84+
message_args: tuple[str, str]
85+
def __init__(self, filename: str, loc: ast.AST, name: str) -> None: ...
8186

8287
class ReturnOutsideFunction(Message): ...
8388
class YieldOutsideFunction(Message): ...
@@ -90,53 +95,53 @@ class IfTuple(Message): ...
9095
class AssertTuple(Message): ...
9196

9297
class ForwardAnnotationSyntaxError(Message):
93-
message_args: tuple[Any]
94-
def __init__(self, filename, loc: ast.AST, annotation) -> None: ...
98+
message_args: tuple[Incomplete]
99+
def __init__(self, filename: str, loc: ast.AST, annotation) -> None: ...
95100

96101
class RaiseNotImplemented(Message): ...
97102
class InvalidPrintSyntax(Message): ...
98103
class IsLiteral(Message): ...
99104
class FStringMissingPlaceholders(Message): ...
100105

101106
class StringDotFormatExtraPositionalArguments(Message):
102-
message_args: tuple[Any]
103-
def __init__(self, filename, loc: ast.AST, extra_positions) -> None: ...
107+
message_args: tuple[Incomplete]
108+
def __init__(self, filename: str, loc: ast.AST, extra_positions) -> None: ...
104109

105110
class StringDotFormatExtraNamedArguments(Message):
106-
message_args: tuple[Any]
107-
def __init__(self, filename, loc: ast.AST, extra_keywords) -> None: ...
111+
message_args: tuple[Incomplete]
112+
def __init__(self, filename: str, loc: ast.AST, extra_keywords) -> None: ...
108113

109114
class StringDotFormatMissingArgument(Message):
110-
message_args: tuple[Any]
111-
def __init__(self, filename, loc: ast.AST, missing_arguments) -> None: ...
115+
message_args: tuple[Incomplete]
116+
def __init__(self, filename: str, loc: ast.AST, missing_arguments) -> None: ...
112117

113118
class StringDotFormatMixingAutomatic(Message): ...
114119

115120
class StringDotFormatInvalidFormat(Message):
116-
message_args: tuple[Any]
117-
def __init__(self, filename, loc: ast.AST, error) -> None: ...
121+
message_args: tuple[Incomplete]
122+
def __init__(self, filename: str, loc: ast.AST, error) -> None: ...
118123

119124
class PercentFormatInvalidFormat(Message):
120-
message_args: tuple[Any]
121-
def __init__(self, filename, loc: ast.AST, error) -> None: ...
125+
message_args: tuple[Incomplete]
126+
def __init__(self, filename: str, loc: ast.AST, error) -> None: ...
122127

123128
class PercentFormatMixedPositionalAndNamed(Message): ...
124129

125130
class PercentFormatUnsupportedFormatCharacter(Message):
126-
message_args: tuple[Any]
127-
def __init__(self, filename, loc: ast.AST, c) -> None: ...
131+
message_args: tuple[Incomplete]
132+
def __init__(self, filename: str, loc: ast.AST, c) -> None: ...
128133

129134
class PercentFormatPositionalCountMismatch(Message):
130135
message_args: tuple[int, int]
131-
def __init__(self, filename, loc: ast.AST, n_placeholders: int, n_substitutions: int) -> None: ...
136+
def __init__(self, filename: str, loc: ast.AST, n_placeholders: int, n_substitutions: int) -> None: ...
132137

133138
class PercentFormatExtraNamedArguments(Message):
134-
message_args: tuple[Any]
135-
def __init__(self, filename, loc: ast.AST, extra_keywords) -> None: ...
139+
message_args: tuple[Incomplete]
140+
def __init__(self, filename: str, loc: ast.AST, extra_keywords) -> None: ...
136141

137142
class PercentFormatMissingArgument(Message):
138-
message_args: tuple[Any]
139-
def __init__(self, filename, loc: ast.AST, missing_arguments) -> None: ...
143+
message_args: tuple[Incomplete]
144+
def __init__(self, filename: str, loc: ast.AST, missing_arguments) -> None: ...
140145

141146
class PercentFormatExpectedMapping(Message): ...
142147
class PercentFormatExpectedSequence(Message): ...

0 commit comments

Comments
 (0)