TypedDict when keys have invalid names

According to PEP 589 you can use alternative syntax to create a TypedDict as follows:

Movie = TypedDict('Movie', {'name': str, 'year': int})

So, in your case, you could write:

from typing import TypedDict

RandomAlphabet = TypedDict('RandomAlphabet', {'A(2)': str})

or for the second example:

RandomAlphabet = TypedDict('RandomAlphabet', {'return': str})

PEP 589 warns, though:

This syntax doesn’t support inheritance, however, and there is no way
to have both required and non-required fields in a single type. The
motivation for this is keeping the backwards compatible syntax as
simple as possible while covering the most common use cases.

Leave a Comment