グローバルのレジストリを取得するには、以下のようにします:
reg = pdg.TypeRegistry.types()
メソッド
静的メソッド
findFile(file_name)
→ str
Static method
PDG検索パスからファイルを検索し、そのファイルの絶対パスを返します。 ファイルが見つからなかった場合、このメソッドはNoneを返します。
globFiles(pattern)
→ list
of str
Static method
PDG検索パスから、指定したパターンに合致したすべてのファイルを検索し、そのファイルの絶対パスのリストを返します。 ファイルが見つからなかった場合、このリストは空っぽです。
globPythonModules(unique=True)
→ list
of str
Static method
PDGカスタムタイプ検索パス上のすべてのPythonモジュールを検索し、そのモジュール名のリストを返します。
これらのPythonモジュールは、$HOUDINI_PDG_DIR/types
にあります。
unique
をTrue
に設定すると、同じ名前のモジュールが検索パス上の別々の場所で複数見つかったとしても、固有のモジュール名のみが返されます。
Pythonは、同じ名前の複数のモジュールの中で検索パス順で最初に見つかったモジュールしかインポートすることができません。
unique
をFalse
に設定することで、そのような問題のデバッグをすることができます。
searchPath()
→ list
of str
Static method
PDGノードタイプとPDGノードテンプレートの検索パスを返します。
インスタンスメソッド
addExtensionTag(extension, tag)
ファイル拡張子からマッピングをResult Dataタグに追加します。
addParentTypes(type, type_names)
指定したタイプを、指定したtype
の親/互換としてマークします。
type
にはpdg.BaseTypeインスタンスを、type_names
にはstr
タイプ名のリスト
を指定してください。
addTag(tag)
該当するファイルの拡張子を外したタグを追加します。 このタグは、Result Dataタグのグローバルリストに追加され、ファイル拡張子 → タグのマッピングには追加されません。
addTagViewer(tag, viewer)
指定したResult Dataタグとビューアアプリケーション名(例えば、"mplay"や"gplay")のマッピングを作成します。 このアプリケーションは、ワークアイテムInfoパネルからタグ付きResultを開いた時に使用されます。
extToTag(extension)
→ str
指定したファイル拡張子のResult Dataタグを返します。
filteredTags(prefix)
→ list
of str
指定した接頭辞のタグのリストを返します。例えば、file/geo
やfile/image
。
isViewable(tag)
→ bool
指定したファイルタグがビューアに関連付けられていればTrue
を返します。
例えば、デフォルトでfile/image
タグはHoudiniに同梱されているmplay
アプリケーションを使ってビューイング可能なので、isViewable("file/image")
はTrue
を返します。
その一方で、isViewable("file/customfile")
は、そのファイルタグ向けのカスタムビューアがインストールされていない限りFalse
を返します。
pathToTag(file_path)
→ str
指定したファイルパスのResult Dataタグを返します。
pathToViewer(file_path)
→ str
指定したファイルパスのビューアアプリケーション名を返します。
pySerializationModule
: str
Property
シリアライズ化の過程でPDG Python Objectアトリビュートを読み込んで保存する際に使用されるモジュールの名前。
デフォルト値は空っぽの文字列です。これは、単純なrepr
とeval
をベースにしたシリアライズスキームを使ってオブジェクトが保存されることを意味します。
tagToViewer(tag)
→ str
指定したResult Dataタグのビューアアプリケーション名を返します。
registerCacheHandler(tag, handler)
指定したタグを使ってカスタムキャッシュハンドラーを登録します。 必要な出力ファイルがディスク上に存在するのかをワークアイテムがチェックする時、これは、ビルトインのキャッシュファイルチェックを呼び出す前にカスタムハンドラーをコールします。 ハンドラーは、より特化したタグを優先してコールされます。
例えば、file/geo/collision
出力タグを持ったファイルは、まず最初にfile/geo/collision
ハンドラーをチェックし、次にfile/geo
ハンドラーをチェックします。
どれかのハンドラーがpdg.cacheResult.Hitまたはpdg.cacheResult.Missを返すと、評価が停止し、その結果が使用されます。
どのハンドラーもそれらの結果のどれかを返さなかった場合またはカスタムハンドラーが見つからなかった場合、PDGは、単にそのファイルがディスク上に存在するかどうかをチェックしてそのファイルをキャッシュ化するかどうかを決めます。
registerDirtyHandler(handler, handler_type=pdg.dirtyHandlerType.Any, scheduler_filter=[], node_filter=[], requires_outputs=False, is_global=False)
カスタムワークアイテムをDirty handler
に登録します。
このハンドラーには関数またはコール可能なオブジェクトを指定します。
この関数は、指定したhandler_type
に基づいてワークアイテムがDirty(変更あり)または削除される度にコールされます。
このhandler_type
にはpdg.dirtyHandlerType
の値を指定します。
scheduler_filter
とnode_filter
の引数を使用することで、ハンドラーを、指定したタイプのノードまたはスケジューラが所有しているワークアイテムに制限することができます。
handler_type
にpdg.dirtyHandlerType.Files
を設定し、requires_outputs
をTrue
にすると、ワークアイテムの1つ以上のファイルが削除された場合にのみハンドラーがコールされます。
is_global
フラグをTrue
にすると、ワークアイテム毎ではなく、ワークアイテムの数に関係なく、Dirtyオペレーションの度に1回だけハンドラーが呼び出されます。
例えば、以下のハンドラーは、ropfetch
ノードのワークアイテムが削除される度にコールされます:
def func(work_item, file_list): print(work_item) type_registry.registerDirtyHandler(func, handler_type=pdg.dirtyHandlerType.Delete, node_filter=['ropfetch'])
registerModuleTypes(module, quiet=False)
指定したモジュールからカスタムタイプを登録します。
registerDSOTypes(dso_path)
指定した共有ライブラリパスからC++タイプを読み込みます。
registerNode(type_object, node_type, name=None, label=None, category=None, static_gen=False, sub_type=_pdg.nodeSubtype.Normal)
→ pdg.NodeCallbackType
カスタムノードタイプを登録します。
type_object
にはPythonクラスオブジェクトを、node_type
にはpdg.nodeTypeを指定してください。
デフォルトでは、name
とlabel
には小文字でそのPythonクラス名が設定され、category
は空っぽのままになります。
static_gen
フラグは、このノードのワークアイテム生成パラメータをAutomatic
に設定した時に静的ワークアイテムの生成を優先させるのかどうかを指定します。
registerPythonPath(path, update_tops)
指定したパスのPythonモジュールから、登録されたタイプを読み込みます。
registerScheduler(type_object, name=None, label=None, parm_category=None, node_category='Schedulers')
→ pdg.SchedulerType
カスタムスケジューラタイプを登録します。
type_object
にはPythonクラスオブジェクトを指定してください。
デフォルトでは、name
とlabel
とcategory
には小文字でそのPythonクラス名が設定されます。
category
は、スケジューラのプロパティ(Job Parms)の配置先を決めるのに使用され、それらのプロパティのspare_category
に相当します。
node_category
は、HoudiniのTabメニュー内でこのノードが見つかる場所です。
registeredType(reg_type, name)
→ pdg.BaseType
指定したpdg.registeredTypeとタイプ名のPDGタイプオブジェクトを返します。
registerWorkItem(type_object, name=None, label=None)
→ pdg.WorkItemDataType
カスタムワークアイテムタイプを登録します。
type_object
にはPythonクラスオブジェクトを指定してください。
デフォルトでは、name
とlabel
には小文字でそのPythonクラス名が設定されます。
registerService(name, label, command)
→ pdg.ServiceType
カスタムサービスタイプを登録します。
name
は、そのサービスタイプの識別子で、固有な名前にしてください。
label
は、そのサービスに関して人に分かりやすい名前を指定してください。
command
は、PDGサービスマネージャがクライアントインスタンスを起動するのに必要なコマンドライン引数を指定した文字列を指定してください。
setDefaultWorkItem(item_type)
デフォルトのワークアイテムタイプを、指定したpdg.WorkItemTypeオブジェクトに設定します。
setPySerializationModule(module_name)
Pythonオブジェクトアトリビュートをシリアライズ化/デシリアライズ化する際に使用するモジュールの名前を設定します。
ファームに送信するワークアイテムデータを保存する時、デフォルトでは、オブジェクトのrepr
が使用されます。
カスタムモジュール名を指定すると、代わりにそのモジュール内のdumps
関数とloads
関数を使用して、それぞれオブジェクトの保存と読み込みを行ないます。
例えば、このモジュールにpickle
を設定することで、Pythonのビルトインのシリアライゼーションを利用することができます。
別の方法として、モジュール内に独自のシリアライゼーションを記述して、HoudiniのPythonパスからそのモジュールにアクセスすることもできます。
tags
: list
of str
Property
すべてのResult Dataタグのグローバルリスト。