現在のプロジェクトに型注釈を実装しようとしていますが、mypy から理解できないエラーが発生しています。
私は Python 2.7.11 を使用しており、ベースの virtualenv に mypy を新しくインストールしました。次のプログラムは正常に実行されます。
from __future__ import print_function
from types import StringTypes
from typing import List, Union, Callable
def f(value): # type: (StringTypes) -> StringTypes
return value
if __name__ == '__main__':
print("{}".format(f('some text')))
print("{}".format(f(u'some unicode text')))
しかし、実行mypy --py2 -s mypy_issue.py
すると次のように返されます。
mypy_issue.py: note: In function "f":
mypy_issue.py:8: error: Invalid type "types.StringTypes"
上記のタイプは Typeshed にあるようです... mypy のドキュメントには、「Mypy には、Python ビルトインと標準ライブラリのライブラリ スタブを含む typeshed プロジェクトが組み込まれています。」と記載されています。 Typeshed を「アクティブ化」する、またはパスを提供するために何かをするには? Typeshed をローカルにダウンロードしてインストール (?) する必要がありますか?