- TypedDict is provided by the typing module for python >= 3.8
- TypedDict is provided by the typing_extensions module for typing_extensions >= 3.7.4
but this module is not available as debian buster package.
- mypy does not support condition types defined like that:
if CONDITION: type = Dict else: type = TypedDict
and therefore it's not possible to conditionally declare the type.
but… it does support checks with python version or system platform (cf: https://mypy.readthedocs.io/en/stable/common_issues.html#python-version-and-system-platform-checks).
Let's import TypedDict from typing when it's available (python >= 3.8), and use it. Otherwise, let's use a simple dict.