1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DCCツール用の型スタブの導入について

Posted at

型スタブファイル (.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 などを使用して簡単に導入することができます。

Mayaのスタブの導入例
pip install types-maya-strict

参考

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?