Doing type checking statically (mypy) and in runtime (pytypes and typical)
Pytypes @typechecked and typical @typic.al decorators assure type checking when building an object for a class and when calling a method.
Mypy can be executed to type check code before executing it.
mypy . --explicit-package-bases --namespace-packages --strict