Pytype checks and infers types for your Python code - without
requiring type annotations. Pytype can:

* Lint plain Python code, flagging common mistakes such as misspelled
  attribute names, incorrect function calls, and much more, even
  across file boundaries.
* Enforce user-provided type annotations. While annotations are
  optional for pytype, it will check and apply them where present.
* Generate type annotations in standalone files ("pyi files"),
  which can be merged back into the Python source with a provided
  merge-pyi tool.

Pytype is a static analyzer; it does not execute the code it runs
on.

Homepage:
https://google.github.io/pytype
