Skip to content

convert-typed-dict-functional-to-class (UP013)#

Derived from the pyupgrade linter.

Fix is sometimes available.

What it does#

Checks for TypedDict declarations that use functional syntax.

Why is this bad?#

TypedDict subclasses can be defined either through a functional syntax (Foo = TypedDict(...)) or a class syntax (class Foo(TypedDict): ...).

The class syntax is more readable and generally preferred over the functional syntax.


from typing import TypedDict

Foo = TypedDict("Foo", {"a": int, "b": str})

Use instead:

from typing import TypedDict

class Foo(TypedDict):
    a: int
    b: str