18
18

More than 3 years have passed since last update.

VScode+Pyrightで新バージョンのPython文法の混入を防ぐ

Last updated at Posted at 2019-11-24

Pyrightって何?

PyrightLarge.png

PyrightはMicrosoft謹製のPython向け静的解析ツールです。
もともと型チェックが得意な同ツールですが、型チェックの他にもコード内に意図せず未サポートの文法(Python 3.8のセイウチ演算子など)が使われていないかチェックする機能も備えています。
このチェック機能があれば、Python 3.8の新機能盛り沢山のコードを配布したら配布先で動かなかった!(Python 3.4 (2014年) のままだった)、といったトラブルを未然に防ぐことができます。
このようにPyrightは型チェックだけでなくコード側でPythonの対象バージョンを絞ることもでき非常に強力な静的解析ツールと言えるでしょう。

PyrightはVScodeの拡張機能として利用可能です。

余談: 名称の「Pyright」はパイライト鉱石(Pyrite; 黄鉄鉱)とかけているようです。ロゴのデザインも素敵ですね。

やり方

さて本題です。設定の手順は以下の通りです。

  1. VScodeの拡張機能Pyrightをインストールする。
  2. 自身のプロジェクトのルートディレクトリにpyrightconfig.json(下記参照)を用意する。
  3. VScodeを再起動する(設定を反映させるため)。
pyrightconfig.json
{
    "pythonVersion": "3.4"
}

コメント: 上記の設定では、自身のプロジェクトの中でPython 3.4でサポートされていない文法(ex. セイウチ演算子f記法)がProblemとして検出されます。

サンプル

実際に未サポートの文法(f記法)を使用した場合の結果を見てみます。下記のサンプルコードをご覧ください。

test_pyright.py
a = 3.14
print(f"a = {a}")

見ての通りPython 3.4では未サポートのf記法が使用されています。
このときVScode上では、下のスクリーンショットのとおり、該当箇所に赤い下線が引かれてProblemとして強調されていることがわかります。またパネル部分にもProblemとして表示されます。

▼ VScodeの画面(上:エディタ部分、下:パネル部分)
スクリーンショット 2019-11-24 1.36.10.png
スクリーンショット 2019-11-24 18.23.58.png

コメント: 赤い下線の箇所にカーソルを乗せることで「 f記法はPython 3.6以上が必要です 」と書かれたツールチップが表示されます。

このチェック機能があれば、「○○○はPython 3.8からだっけな? △△△は〜」と呟きながらその都度リファレンスを確認せずに済みますのでとっても快適です。

Pyright、すごい。

参考リンク

18
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
18