Releases: PyCQA/flake8-pyi
Releases · PyCQA/flake8-pyi
22.8.2
New error codes:
- Y047: Detect unused
TypeAlias
declarations. - Y049: Detect unused
TypedDict
definitions. - Y050: Prefer
typing_extensions.Never
for argument annotations over
typing.NoReturn
. - Y051: Detect redundant unions between
Literal
types and builtin supertypes
(e.g.Literal["foo"] | str
, orLiteral[5] | int
).
Other enhancements:
- Support
mypy_extensions.TypedDict
.
22.8.1
- Add support for flake8 >= 5.0.0.
22.8.0
New error codes:
- Y046: Detect unused
Protocol
s. - Y048: Function bodies should contain exactly one statement.
Bugfixes:
- Improve error message for the case where a function body contains a docstring
and a...
orpass
statement.
Other changes:
- Pin required flake8 version to <5.0.0 (flake8-pyi is not currently compatible with flake8 5.0.0).
22.7.0
New error codes:
- Introduce Y041: Ban redundant numeric unions (
int | float
,int | complex
,
float | complex
). - Introduce Y042: Type alias names should use CamelCase rather than snake_case
- Introduce Y043: Ban type aliases from having names ending with an uppercase "T".
- Introduce Y044: Discourage unnecessary
from __future__ import annotations
import.
Contributed by Torsten Wörtwein. - Introduce Y045: Ban returning
(Async)Iterable
from__(a)iter__
methods.
Other enhancements and behaviour changes:
- Improve error message for Y026 check.
- Expand Y026 check. Since version 22.4.0, this has only emitted an error for
assignments totyping.Literal
,typing.Union
, and PEP 604 unions. It now also
emits an error for any subscription on the right-hand side of a simple assignment, as
well as for assignments totyping.Any
andNone
. - Support
typing_extensions.overload
andtyping_extensions.NamedTuple
. - Slightly expand Y034 to cover the case where a class inheriting from
(Async)Iterator
returns(Async)Iterable
from__(a)iter__
. These classes should nearly always return
Self
from these methods. - Support Python 3.11.
22.5.1
Behaviour changes:
- Relax Y020 check slightly, enabling the idiom
__all__ += ["foo", "bar"]
to be used
in a stub file.
22.5.0
Features:
- Introduce Y039: Use
str
instead oftyping.Text
for Python 3 stubs. - Teach the Y036 check that
builtins.object
(as well as the unqualifiedobject
) is acceptable as an annotation for an__(a)exit__
method argument. - Teach the Y029 check to emit errors for
__repr__
and__str__
methods that returnbuiltins.str
(as opposed to the unqualifiedstr
). - Introduce Y040: Never explicitly inherit from
object
in Python 3 stubs.
22.4.1
Features:
- Expand Y027 check to prohibit importing any objects from the typing module that are aliases for objects living in
collections.abc
(except fortyping.AbstractSet
, which is special-cased). - Introduce Y038: Use
from collections.abc import Set as AbstractSet
instead offrom typing import AbstractSet
.
Bugfixes:
- Improve inaccurate error messages for Y036.
22.4.0
Features:
- Introduce Y036 (check for badly defined
__exit__
and__aexit__
methods). - Introduce Y037 (Use PEP 604 syntax instead of
typing.Union
andtyping.Optional
).
Contributed by Oleg Höfling.
Behaviour changes:
- Expand Y035 to cover
__match_args__
inside class definitions, as well as__all__
in the global scope.
Bugfixes:
- Improve Y026 check (regarding
typing.TypeAlias
) to reduce false-positive errors
emitted when the plugin encountered variable aliases in a stub file.
22.3.0
Bugfixes:
- fix bug where incorrect quoted annotations were not detected within
if
blocks
Behaviour changes:
- Add special-casing so that string literals are allowed in the context of
__match_args__
assignments inside a class definition. - Add special-casing so that arbitrary values can be assigned to a variable in a stub file if the variable is annotated with
Final
.
22.2.0
Bugfixes:
- fix bugs in several error codes so that e.g.
_T = typing.TypeVar("_T")
is
recognised as aTypeVar
definition (previously only_T = TypeVar("_T")
was
recognised). - fix bug where
foo = False
at the module level did not trigger a Y015 error. - fix bug where
TypeVar
s were erroneously flagged as unused if they were only used in
atyping.Union
subscript. - improve unclear error messages for Y022, Y023 and Y027 error codes.
Features:
- introduce Y032 (prefer
object
toAny
for the second argument in__eq__
and
__ne__
methods). - introduce Y033 (always use annotations in stubs, rather than type comments).
- introduce Y034 (detect common errors where return types are hardcoded, but they
should useTypeVar
s instead). - introduce Y035 (
__all__
in a stub has the same semantics as at runtime).