Flake type annotations plugin
The flake8
plugin checking for correct usage of the Python type annotations.
Use with flake8-annotations for even better results!
Installation
Plugin requires flake8 >3.0.0
pip install flake-type-annotations-plugin
Rules
TAN001
This rule disallows usage of Union
and Optional
type annotations and expects user
to use the new |
operator syntax.
Example:
# WRONG
from typing import Optional, Union
def func(arg: Optional[int]) -> Union[int, str]: # violates TAN001
return arg if arg is not None else "N/A"
# CORRECT
def func(arg: int | None) -> int | str: # OK
return arg if arg is not None else "N/A"
For Python versions <3.10
a top-level module import
from __future__ import annotations
must be included in order to use this
syntax.
More can be read in PEP604.
TAN002
This rule disallows usage of type annotations where built-in types can be used.
Example:
# WRONG
from typing import List, Tuple
def func(arg: Tuple[int]) -> List[int]: # violates TAN002
return list(arg)
# CORRECT
def func(arg: tuple[int]) -> list[int]: # OK
return list(arg)
For Python versions <3.9
a top-level module import
from __future__ import annotations
must be included in order to use this
syntax.
More can be read in PEP585.