Now we've moved to python 3.8 we should be using code annotations via the typing module. There are many static type checkers available, each of which have their own features (e.g. mypy, pyre, pytype, etc). I suggest that we use mypy in our codebase as it's not large and doesn't need the features the other static checkers have e.g. inference of types in code that do not have type annotations. This PyCon2020 video provides an overview of static typing in python.
Now we've moved to python 3.8 we should be using code annotations via the typing module. There are many static type checkers available, each of which have their own features (e.g. mypy, pyre, pytype, etc). I suggest that we use mypy in our codebase as it's not large and doesn't need the features the other static checkers have e.g. inference of types in code that do not have type annotations. This PyCon2020 video provides an overview of static typing in python.