Not a definitive answer to the problem but mypy supports a limited sets of common "interfaces", for instance dict-like or list-like.
http://mypy.readthedocs.io/en/latest/cheat_sheet_py3.html#st...
http://mypy.readthedocs.io/en/latest/cheat_sheet_py3.html#st...