![pexels-photo-6194973.jpeg](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fai4vjpehjr3j%2F375wDbVfMMqz8zApbnUitV%2Fd42fc68c48c7db906604a61aa790c424%2Fpexels-photo-6194973.jpeg&w=2048&q=75)
pyrightの使い方
![Kazuki Moriyama](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fai4vjpehjr3j%2F2Oa6QzkYOe51LQiER7VEtN%2F6e819c38a98a1c649401b86861c40d53%2Fimage.png&w=96&q=75)
Kazuki Moriyama (森山 和樹)
https://github.com/microsoft/pyright
pyrightとは?
- microsoft製のpython静的型チェックツール
- python組み込みのtypehintをベースに静的型検査を行ってくれる
pyrightの使用方法
以下のコマンドでインストール.npmは必要.
npm install -g pyright
その後以下のコマンドでチェックを実施.
pyright -p
ファイルの変更を検知して自動でチェックすることもできる.
pyright -w
外部ライブラリのためのstubファイルの生成
外部ライブラリを使用するときそのライブラリに型がつけられていないとpyrightに怒られる.
そのときにstubファイルというものが配布されていれば怒られないのだが、ない場合が多い.
pyrightはstubファイルのドラフト版を自動生成することができるので、それらのファイル内の使用したいメソッドに型をつけてあげれば良い.
以下のコマンドでstubのドラフトが自動生成される.
作成されるディレクトリは何も指定しないとtypings
以下。
pyright --createstub <library-name>
NOTE
library-nameはpipでinstallするときの名前ではなく、source codeでimportするときの名前
設定ファイル
- プロジェクト直下に
pyrightconfig.json
という名前で設定ファイルを用意する
sample
{
"pythonVersion": "3.7",
"ignore": ["raspi_submodule/**", "typings/**", "tests/**"],
"strict": ["**"]
}
設定項目
- pythonVersion: 指定したpythonのversionで互換性のある書き方かチェックしてくれる
- strict: チェックが厳しくなる(これが全部onになる)、ディレクトリ、ファイルを配列で指定する
- ignore: チェックを無視する、ディレクトリ、ファイルを配列で指定する