検索
ニュース

Microsoft、Pythonの静的型チェック機能を提供する「VS Code」プラグイン「Pyright」を公開mypyなどより5倍以上高速

Microsoftは、Pythonの静的型チェック機能を提供する「Visual Studio Code」(VS Code)のプラグイン「Pyright」をオープンソースのMITライセンスで公開した。

Share
Tweet
LINE
Hatena

 Microsoftは2019年3月21日(米国時間)、Pythonの静的型チェック機能を提供する「Visual Studio Code」(VS Code)プラグイン「Pyright 1.0.0」をオープンソースのMITライセンスで公開した。同23日には多数のバグを修正した「Pyright 1.0.1」を公開している。

 Pyrightは、「mypy」のような既存のPython型チェッカに存在する難点に対処する目的で開発された。特徴は次の通り。

高速処理

 Microsoftによれば、Pyrightは、Pythonで書かれたmypyなどの型チェッカよりも5倍以上高速だという。Pyrightの想定用途は、大規模なPythonソースコードの型チェックだ。“ウォッチ”(監視)モードで動作し、ファイルの変更を検知すると、高速な差分更新を実行する。

Python環境に非依存

 PyrightはTypeScriptで記述されており、ノード内で動作する。PyrightをインストールするためにPython環境や、サードパーティーパッケージのインポートは必要ない。これは、拡張のランタイムとしてノードを使用するVS Codeとともに使う上で特に好都合だ。

柔軟な構成

 Pyrightでは、柔軟に構成を行い、設定をきめ細かく制御できる。ソースコードのさまざまなサブセットごとに異なる“実行環境”を指定することもできる。各実行環境で異なるPYTHONPATH設定、Python言語のバージョン、ターゲットプラットフォームを指定することが可能だ。

型チェック機能

 Pyrightは次のPEP(Python Enhancement Proposal)などをサポートする。

  • PEP 484:generic型を含む型ヒント
  • PEP 526:変数アノテーション向け構文
  • PEP 544:構造的部分型(static duck typing)
  • 関数の戻り値、インスタンス変数、クラス変数、グローバル変数の型推論
  • if/else文のような条件付きコードフローコンストラクトを理解するスマート型制約

ビルトイン型スタブ

 Pyrightは、Typeshedに由来するstdlib型スタブの最近のコピーを含んでいる。Typeshed型スタブの他の、例えば、より最近の、または変更されたコピーを使うように構成することもできる。ユーザープロジェクトに含まれるカスタム型スタブファイルにも対応する。

コマンドラインや言語サービス

 Pyrightはコマンドラインツールと、VS CodeのLanguage Server Protocolプラグインを含んでいる。

言語サービス機能

 Pyrightは、次の言語サービス機能を提供する。

  • 型情報を表示するホバーツールチップ
  • シンボル定義へのリンク
  • 編集時の“ライブ”フィードバックのためのスマートなプライオリティキューイング

対応バージョン

 Pyrightは現在、Python 3.0以降をサポートしており、今のところ、Python 3.0より前のバージョンをサポートする計画はない。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る