私は新しい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
前 - 考慮する 機能要求を開く.