Pythonの静的型をするvscode拡張: Pylance, Pyright, mypyの違い
Visual Studio Code (vscode) において、静的型検査をしながらPythonの開発をするときに使う拡張機能やツールです。
Python 3の機能で型ヒントをプログラム中に書けますが、静的型検査をするには別途後述のようなツールを利用する必要があります。
TLDR: vscodeでPython開発をする際は、PythonとPylanceの拡張機能を入れると良さそう
Python (拡張機能の名前)
Microsoft製のPython用の拡張機能で、デバッグやJupyter Notebookの表示などの機能を提供します。
とりあえず入れておくべき拡張機能です。
Pyright
Microsoft製の静的型チェックを行うツールです。
かつては同じくPyrightという名称のvscode拡張によって静的型チェックができましたが、2020年7月現在は後述のPylanceが推奨されるようになりました。
Pylance
Microsoft製の拡張機能で、同じく静的型チェックに加えて、自動インポートや、型宣言を強制するstrict
モードも搭載されていて、より高機能です。
内部で型チェックのためにPyrightを使っています。Python拡張機能をインストールした後に、こちらをインストールします。
まだプレビュー版ですが、かなり便利な印象です。
また、将来的にはPython拡張機能に統合される予定だそうです。なお、OSSではありません。
mypy
Microsoft製のツールより(たぶん)前からある静的型チェックを行うツールです。
vscodeに入れるときにMicrosoft製の拡張機能のほうが簡単に入ったので、あまり使ったことがありません。
全体的にPylanceのほうが高機能だと思うので、こちらは劣勢と思われます。メリットとしては完全オープンソースという点でしょうか。
Pyright と mypy の違い
こちらに詳しく記載されていました。