/ /ソースでタイプヒントをチェックする方法がありますか? - python、python-3.x

flake8にソースのタイプヒントをチェックさせる方法がありますか? - python、python-3.x

私は新しいPythonプロジェクト(python 3.5+)を開始しました。コードベース全体にタイプヒントを適用したいと思います。 flake8 または他のツール?

回答:

回答№1は2

を見てみましょう ミーピー.

ウェブサイトから:

Mypyは実験的なオプションの静的型です動的な(または "ダック")タイピングと静的タイピングの利点を組み合わせることを目的としたPythonのチェッカーです。 Mypyは、強力な型システムとコンパイル時の型チェックで、表現力とPythonの利便性を兼ね備えています。 Mypy型は、標準のPythonプログラムをチェックします。基本的にランタイムオーバーヘッドなしでPython VMを使用してそれらを実行してください。

EDIT

実際にはmypyは型チェッカーですので、デフォルトではヒントされたり推定された型に関連するエラーがあるかどうかだけをチェックします。また、ヒントなしの種類を報告するために、追加のコマンドラインスイッチを文書化されているとおりに使用できます ここに.

--disallow-untyped-defs 型の注釈なしで関数定義に遭遇するたびにエラーを報告します。

--check-untyped-defs 以前のオプションより軽度である - それはタイプ型のアノテーションがあるかどうかにかかわらず、すべての関数の本体をチェックします。 (デフォルトでは、注釈のない本体は型チェックされません)。すべての引数がAny型を持ち、戻り型としてAnyを常に推測します。

--disallow-untyped-calls 型アノテーションを持つ関数がアノテーションなしで定義された関数を呼び出すたびにエラーを報告します。

...


回答№2の場合は1

ミーピー Pythonプログラムのタイプヒントを検証するために使用できます。ドキュメントが見つかりました ここに かなり包括的です。


回答№3の場合は1

他の言及 mypy タイプヒントをチェックするために使用されますが、 それらを強制しない。型の注釈についてより厳密にするためには、 設定後の設定

disallow_untyped_calls (ブール値、デフォルトはFalse)はコールを許可しません 型を持たない関数型を持つ関数の注釈 注釈。

disallow_untyped_defs (ブール値、デフォルトはFalse)定義できない 型注釈なしの型または不完全型付きの関数 注釈。

または、これらの設定を コマンドライン引数 代わりに。


また、 PyLint 型アノテーションの強制はまだサポートされていませんが、 機能リクエスト。そして、私は、 flake8/pyflakes 前 - 考慮する 機能要求を開く.