TypeguardでPython実行時に型チェック
Typeguardとは
Pythonのスクリプト実行時に型アノテーションの情報を使った 型チェックをしてくれるパッケージ
インストール
pipコマンドでインストールできる。
1pip install typeguard
使い方
自分が使いそうな機能だけ書いておく。他にも便利なのがいろいろあるので 詳細はUser guide — Typeguard 2.10.0.post3 documentationを参照。
デコレータを使ったやり方
以下のように、typecheckedデコレータをつけた関数は実行時に型チェックされる。
1from typeguard import typechecked
2
3# typecheckedデコレータがついた関数は、スクリプト実行時に型チェックされる
4@typechecked
5def f(x: int):
6 print(x)
7
8f('これは文字列だよ')
9# 型があっていない場合、以下のエラーが投げられる。
10# TypeError: type of argument "x" must be int; got str instead
pytestのプラグインとして使う
以下のように、--typeguard-packages にチェックするパッケージ名を指定することで、
そのパッケージをチェック対象にしてpytestを実行できる。
1# foo, bar, xyzパッケージをチェック対象にする。
2pytest --typeguard-packages=foo.bar,xyz
参考
Categories: