python の型ヒント
python typing
生成する
既存のライブラリ、特に拡張ライブラリに型ヒントを付与したいことがある。 これらは、元が c/c++ なのでその型情報から pyi を生成してやる。 型情報は、 clang.cindex を使って c/c++ のヘッダーから得るとよい。
vscode + pylance(pyright)
プロジェクトローカルでいい場合は、 ${workspaceFolder}/typings に配置すると処理してくれる。 clang.cindex に enum の情報を追加してみた。
ctypes
clang.cindex
もとのモジュールと構造が同じ pyi を用意してやる。 ctypes の Structure や関数ポインタに直接型ヒントを付与うまい方法は無さそう?
拡張モジュール
bpy
imgui のバインディング
拡張モジュールに型ヒントを埋め込む方法がまだ無いっぽい。 埋め込む方法ができれば、 cython や pybind で作った拡張モジュールには自動で型ヒントが付きそうな気がするのだが。
imgui で作ってみた。
を参考に作ってみた。