型スタブファイル (.pyi) について
Python 3 以降では、関数やクラスに型注釈を加える「型ヒント(type hints)」が導入され、静的型チェックによる品質管理が可能になりました。mypyなどの静的解析ツールを活用することで、潜在的なバグを事前に検知したり、コードの明瞭性を高めたりといった利点があります。
しかし、C++などで実装されたバイナリモジュールは、Pythonのソースコードが公開されていない場合が多く、型情報を得るのが困難です。
こうしたケースでは、型スタブファイルが使用されます。型スタブファイルは .pyi 形式で記述され、関数やクラスのインターフェース情報のみを定義します。
def func0(arg1: str, arg2: int) -> bool: ...
class Sample:
def func1(self) -> None: ...
.pyi を用意することで、実体がバイナリであるライブラリに対しても、型チェッカーやIDEの補完機能を活用でき、静的解析や保守の観点から、非常に有益な仕組みです。
DCCツールの型スタブについて
VFXやアニメーション制作の現場で使用する多くのソフトウェア・ライブラリに対して、Pythonによるスクリプティングやツール開発を行う機会が多くあります。それらのツールの多くのPython APIは、C++で構築されているケースも多く、型ヒントがない、型スタブファイルの整備が不十分といったケースも少なくありません。
そのため、IDE、エディタによる補完機能が十分に活用できないだけではなく、静的型チェックの導入が難しく、保守作業などにも影響があります。
CG Stubs の紹介
この問題を解消するためには、LumaPicturesが公開している CG Stubs の導入がおすすめです。こちらのリポジトリでは多くのソフトウェア・ライブラリに対応する型スタブが公開されています。
上記のスタブは、他のPythonライブラリと同様、PyPIにホスティングされており、uv
, pip
などを使用して簡単に導入することができます。
pip install types-maya-strict