no-string-type-annotation¶
Replace quoted annotations when postponed annotation evaluation is enabled.
Message¶
Remove the quotes from this annotation; postponed evaluation is already enabled.
References¶
Valid examples¶
from a.b import Class
def foo() -> Class:
return Class()
Show more
import typing
from a.b import Class
def foo() -> typing.Type[Class]:
return Class
import typing
from a.b import Class
from c import func
def foo() -> typing.Optional[typing.Type[Class]]:
return Class if func() else None
from a.b import Class
def foo(arg: Class) -> None:
pass
foo(Class())
from a.b import Class
module_var: Class = Class()
from typing import Literal
def foo() -> Literal["a", "b"]:
return "a"
import typing
def foo() -> typing.Optional[typing.Literal["a", "b"]]:
return "a"
import typing
def foo() -> typing.Optional[typing.Literal["class", "function"]]:
return "class"
from __future__ import annotations
from typing import Annotated
value: Annotated[int, "units"]
Invalid examples¶
from __future__ import annotations
from a.b import Class
def foo() -> "Class":
return Class()
Suggested fix
from __future__ import annotations
from a.b import Class
def foo() -> Class:
return Class()
Show more
from __future__ import annotations
from a.b import Class
async def foo() -> "Class":
return await Class()
Suggested fix
from __future__ import annotations
from a.b import Class
async def foo() -> Class:
return await Class()
from __future__ import annotations
import typing
from a.b import Class
def foo() -> typing.Type["Class"]:
return Class
Suggested fix
from __future__ import annotations
import typing
from a.b import Class
def foo() -> typing.Type[Class]:
return Class
from __future__ import annotations
import typing
from a.b import Class
from c import func
def foo() -> Optional[typing.Type["Class"]]:
return Class if func() else None
Suggested fix
from __future__ import annotations
import typing
from a.b import Class
from c import func
def foo() -> Optional[typing.Type[Class]]:
return Class if func() else None
from __future__ import annotations
from a.b import Class
def foo(arg: "Class") -> None:
pass
foo(Class())
Suggested fix
from __future__ import annotations
from a.b import Class
def foo(arg: Class) -> None:
pass
foo(Class())
from __future__ import annotations
from a.b import Class
module_var: "Class" = Class()
Suggested fix
from __future__ import annotations
from a.b import Class
module_var: Class = Class()
from __future__ import annotations
import typing
from typing_extensions import Literal
from a.b import Class
def foo() -> typing.Tuple[Literal["a", "b"], "Class"]:
return Class()
Suggested fix
from __future__ import annotations
import typing
from typing_extensions import Literal
from a.b import Class
def foo() -> typing.Tuple[Literal["a", "b"], Class]:
return Class()
from __future__ import annotations
value: b"\xff"