Inheritence |
|
メソッド
applicationBin(name, work_item)
→ str
指定した名前のアプリケーションのパスを返します。
work_item
引数を使用することで、Schedulerノード上のパラメータを評価することができます。
例: scheduler.applicationBin('python', None)
はPythonベースのジョブで使用されるPython実行可能ファイルのパスを返します。
cleanTempDirectory()
一時ディレクトリとその内容を削除します。
isWaitForFailures
: bool
Property
失敗したワークアイテムがクックを終了まで解決されるのを待つようにスケジューラが構成されている場合はTrue
を返します。
dependencyGraph(expand_partitions=False)
→ tuple
of dict
従来どおりこのスケジューラによって処理されるワークアイテムの静的ディペンデンシーグラフを返します。 このグラフは、ワークアイテム->ディペンデンシーのマップ、ワークアイテム->ディペンダントのマップ、現在クックの準備ができているワークアイテムのリストを含んだタプルとして表現されています。
expand_partitions
引数は、パーティションを通常のワークアイテムのみを含んだ平坦なディペンデンシーグラフに展開するのか、または、パーティションをタプル内に保持するのかを指定します。
name
: str
Property
スケジューラの名前。
cookError(message)
このノードのクックエラーを出します。
cookWarning(message)
このノードのクック警告を出します。
cookWorkItem(work_item)
ワークアイテムのisInProcess
プロパティがTrue
に設定されている場合、その指定されたIn-Processワークアイテムをクックします。
evaluateFloatOverride(node, prefix, parm, work_item, default_value)
→ float
スケジューラパラメータを評価したfloat値を返し、このメソッドに渡されたノードでそのスケジューラパラメータがオーバーライドされているかどうかをチェックします。
このメソッドは、このメソッドに渡されたノードによってスケジューラパラメータがオーバーライドされていれば、そのパラメータ値を返します。 オーバーライドされていなければ、スケジューラが評価したパラメータ値を返します。 このノードまたはスケジューラでそのパラメータが見つからなかった場合、このメソッドに渡されたデフォルト値が返されます。
node
引数には、このスケジューラでクックされている現行ワークアイテムのノードを指定してください。
prefix
パラメータには、そのパラメータの接頭辞を指定してください。
例えば、オーバーライド可能なすべてのLocal Schedulerパラメータ名の頭には"local"が付いています。
parm
は、そのパラメータの名前です。
work_item
は、このスケジューラで現在クックされているワークアイテムです。
default_value
は、そのパラメータがノードまたはスケジューラで見つからなかった場合に返す値です。
evaluateIntOverride(node, prefix, parm, work_item, default_value)
→ int
スケジューラパラメータを評価した整数値を返し、このメソッドに渡されたノードでそのスケジューラパラメータがオーバーライドされているかどうかをチェックします。
このメソッドは、このメソッドに渡されたノードによってスケジューラパラメータがオーバーライドされていれば、そのパラメータ値を返します。 オーバーライドされていなければ、スケジューラが評価したパラメータ値を返します。 このノードまたはスケジューラでそのパラメータが見つからなかった場合、このメソッドに渡されたデフォルト値が返されます。
node
引数には、このスケジューラでクックされている現行ワークアイテムのノードを指定してください。
prefix
パラメータには、そのパラメータの接頭辞を指定してください。
例えば、オーバーライド可能なすべてのLocal Schedulerパラメータ名の頭には"local"が付いています。
parm
は、そのパラメータの名前です。
work_item
は、このスケジューラで現在クックされているワークアイテムです。
default_value
は、そのパラメータがノードまたはスケジューラで見つからなかった場合に返す値です。
evaluateStringOverride(node, prefix, parm, work_item, default_value)
→ str
スケジューラパラメータを評価した文字列値を返し、このメソッドに渡されたノードでそのスケジューラパラメータがオーバーライドされているかどうかをチェックします。
このメソッドは、このメソッドに渡されたノードによってスケジューラパラメータがオーバーライドされていれば、そのパラメータ値を返します。 オーバーライドされていなければ、スケジューラが評価したパラメータ値を返します。 このノードまたはスケジューラでそのパラメータが見つからなかった場合、このメソッドに渡されたデフォルト値が返されます。
node
引数には、このスケジューラでクックされている現行ワークアイテムのノードを指定してください。
prefix
パラメータには、そのパラメータの接頭辞を指定してください。
例えば、オーバーライド可能なすべてのLocal Schedulerパラメータ名の頭には"local"が付いています。
parm
は、そのパラメータの名前です。
work_item
は、このスケジューラで現在クックされているワークアイテムです。
default_value
は、そのパラメータがノードまたはスケジューラで見つからなかった場合に返す値です。
expandCommandTokens(item_command, work_item)
→ str
指定したコマンド内の特別なPDGトークンをスケジューラ特有の値に置換します。
パスとコマンド文字列で使用可能なテキストトークンがいくつかあります。 これらのトークンの目的は、特定のスケジューラで行なう必要のある置換処理を指定できるようにすることです。 スケジューラをローカルマシンにのみ限定すると、パスは絶対パスで間に合います。 ファームスケジューラの場合、マシン固有の置換ができるように環境変数や他の仕組みに基づいてパスを指定する必要があります。 それらのトークンは以下のとおりです:
-
PDG_ITEM_NAME
-
PDG_DIR
-
PDG_TEMP
-
PDG_SCRIPTDIR
-
PDG_RESULT_SERVER
-
PDG_PYTHON
-
PDG_HYTHON
-
PDG_HFS
isWorkItemReady(item_name, index)
→ pdg.workItemReadyResult
指定したワークアイテムがクックの準備ができている場合はpdg.workItemReadyResult.WorkItemReady
を返します。
そのワークアイテムが依存関係に失敗している場合はWorkItemFailed
列挙エントリーを返します。
そのワークアイテムがまだ待機中の場合はWorkItemBlocked
を返します。
そのワークアイテムがバッチでない場合はindex
引数に-1を、バッチ内のサブアイテムの場合はそのワークアイテムのバッチインデックスを指定してください。
localizePath(path)
→ str
スケジューラの作業ディレクトリを基準にリモートパスを展開します。
これは、__PDG_DIR__
, __PDG_TEMP__
, __PDG_SCRIPTDIR__
を現行マシン上の絶対パスに置換します。
delocalizePath(path)
→ str
指定したパスを可能な限り__PDG_DIR__
スケジューラテキストトークンに基づいたパスで返します。
onWorkItemCanceled(item_name, index)
ワークアイテムがキャンセルされた時にコールされます。
指定したワークアイテムがバッチでない場合はindex
に-1を、バッチ内のサブアイテムの場合はそのワークアイテムのバッチインデックスを指定してください。
onWorkItemFailed(item_name, index)
ワークアイテムが失敗した時にコールされます。
指定したワークアイテムがバッチでない場合はindex
に-1を、バッチ内のサブアイテムの場合はそのワークアイテムのバッチインデックスを指定してください。
onWorkItemFileResult(item_name, index, result, tag, checksum, active_only=False)
ワークアイテムが新しい結果を持った時にコールされます。
このresult
には、そのファイルのパスを文字列で指定し、tag
には、そのファイルのタグ文字列、checksum
には、整数値を指定します。
指定したワークアイテムがバッチでない場合はindex
に-1を、バッチ内のサブアイテムの場合はそのワークアイテムのバッチインデックスを指定してください。
active_only
がTrue
の場合、スケジュラーは、既にクックを終了したワークアイテムまたはスケジューラでアクティブになっていないワークアイテムに呼応したこのメソッドのコールを無視します。
onWorkItemInvalidateCache(item_name, index)
出力ファイルリストを変更せずに、ワークアイテムのキャッシュを無効にします。 これにより、次のクックでキャッシュファイルを使用せずに、下流のワークアイテムも再クックされます。 これは、ワークアイテムに対して直接pdg.WorkItem.invalidateCacheをコールすることと同じ効果があります。
onWorkItemSetAttribute(item_name, attribute_name, values)
このメソッドは廃止されました。pdg.SchedulerBase.onWorkItemSetStringAttribや他のメソッドを使用してアトリビュートを追加してください。
ワークアイテムのアトリビュート値が設定/変更された時にコールされます。
values
はstr
、float
、int
のどれかの値の配列で、attribute_name
はそのアトリビュートの文字列名です。
onWorkItemSetStringAttrib(item_name, index, attribute_name, value, [attrib_index])
ワークアイテム上にアトリビュート値が設定/変更された時にコールされます。
attribute_name
は、そのアトリビュートの名前です。
attrib_index
を渡した場合、アトリビュート内のそのインデックスに値が設定されます。
その場合、value
には文字列を指定してください。
それ以外の場合、value
には文字列のリストを指定してください。
ワークアイテムがバッチでない場合、index
には-1を指定してください。
ワークアイテムがバッチ内のサブアイテムの場合、index
には、そのサブアイテムのバッチインデックスを指定してください。
onWorkItemSetIntAttrib(item_name, index, attribute_name, value, [attrib_index])
ワークアイテム上にアトリビュート値が設定/変更された時にコールされます。
attribute_name
は、そのアトリビュートの名前です。
attrib_index
を渡した場合、アトリビュート内のそのインデックスに値が設定されます。
その場合、value
には整数を指定してください。
それ以外の場合、value
には値のリストを指定してください。
ワークアイテムがバッチでない場合、index
には-1を指定してください。
ワークアイテムがバッチ内のサブアイテムの場合、index
には、そのサブアイテムのバッチインデックスを指定してください。
onWorkItemSetFloatAttrib(item_name, index, attribute_name, value, [attrib_index])
ワークアイテム上にアトリビュート値が設定/変更された時にコールされます。
attribute_name
は、そのアトリビュートの名前です。
attrib_index
を渡した場合、アトリビュート内のそのインデックスに値が設定されます。
その場合、value
にはfloatを指定してください。
それ以外の場合、value
には値のリストを指定してください。
ワークアイテムがバッチでない場合、index
には-1を指定してください。
ワークアイテムがバッチ内のサブアイテムの場合、index
には、そのサブアイテムのバッチインデックスを指定してください。
onWorkItemSetFileAttrib(item_name, index, attribute_name, value, [attrib_index])
ワークアイテム上にアトリビュート値が設定/変更された時にコールされます。
attribute_name
は、そのアトリビュートの名前です。
attrib_index
を渡した場合、アトリビュート内のそのインデックスに値が設定されます。
その場合、value
にはpdg.Fileを指定してください。
それ以外の場合、value
にはpdg.Fileのリストを指定してください。
ワークアイテムがバッチでない場合、index
には-1を指定してください。
ワークアイテムがバッチ内のサブアイテムの場合、index
には、そのサブアイテムのバッチインデックスを指定してください。
onWorkItemSetPyObjectAttrib(item_name, index, attribute_name, object_repr)
ワークアイテム上にアトリビュート値が設定/変更された時にコールされます。
object_repr
にはPythonオブジェクトのrepr
文字列を指定し、attribute_name
には、そのアトリビュートの文字列名を指定してください。
ワークアイテムがバッチでない場合、index
には-1を指定してください。
ワークアイテムがバッチ内のサブアイテムの場合、index
には、そのサブアイテムのバッチインデックスを指定してください。
onWorkItemStartCook(item_name, index, clear_outputs=False)
ワークアイテムがクックを開始した時にコールされます。 ワークアイテムが既にクックを完了していれば、このメソッドは何の効果もありません。
指定したワークアイテムがバッチでない場合はindex
に-1を、バッチ内のサブアイテムの場合はそのワークアイテムのバッチインデックスを指定してください。
clear_outputs
がTrue
の場合、以前のクック以降にワークアイテムに追加された既存の出力ファイルがクリアされます。
onWorkItemSucceeded(item_name, index)
ワークアイテムが成功して完了した時にコールされます。
指定したワークアイテムがバッチでない場合はindex
に-1を、バッチ内のサブアイテムの場合はそのワークアイテムのバッチインデックスを指定してください。
getStatusURI(work_item)
→ str
指定したワークアイテムのステータスURIを返します。
これは、ワークアイテムのMMB詳細ウィンドウで表示されます。
ローカルファイルをfile:///
形式で、ウェブページをhttp://
形式で表示することができます。
getLogURI(work_item)
→ str
指定したワークアイテムのログURIを返します。
これは、ワークアイテムのMMB詳細ウィンドウで表示され、さらに特別な@pdg_log
アトリビュートを利用することができます。
ローカルファイルをfile:///
形式で、ウェブページをhttp://
形式で表示することができます。
submitAsJob(graph_name, node_name)
→ str
このスケジューラを使って、現行ネットワークをスタンドアローンジョブとして投入します。
典型的に、このジョブはhython
プロセスになり、現行.hip
ファイルを読み込んで、そのジョブを投入した時点でのスケジューラでのtopnet
の表示ノードをクックします。
そのtopnet
のクックに使用されるスケジューラは、topnet
Default TOP SchedulerパラメータまたはTOPノードのTOP Scheduler Override
パラメータで決まります。
runOnMainThread(wait, function, work_item=None, *args, **kwargs)
→ object
or None
指定したコール可能オブジェクトのfunction
をメインスレッドで実行します。
wait
がTrue
の場合、このメソッドは、そのfunction
の実行が終了するまでブロックされます。
wait
がFalse
の場合、このメソッドは即座に返されます。
wait
がTrue
の場合、このメソッドは、function
で生成された戻り値を返します。
wait
がFalse
の場合、このメソッドは常にNone
を返します。
追加の位置引数とキーワード引数は、function
が呼び出された時にそのfunction
に渡されます。
このメソッドは、function
を評価する際に特別なwork_item
キーワード引数を見て、どのワークアイテムをアクティブにするのかを決めます。
その引数を指定すると、そのfunction
が実行するパラメータ評価にそのワークアイテムが使用されます。
メインスレッドで1度に実行できるのは1個の関数だけです。
このメソッドがコールされる度に、そのfunction
が保留中のメインスレッドコールのキューに追加されます。
これらのキューは、PDGグラフがクックされた時にメインスレッドで処理されます。
このグラフがキャンセルされると、まだ実行が開始されていないキューに入ったオペレーションもキャンセルされます。
このメソッドで待機中のスクリプトはブロック解除されて、それが返す結果はNone
になります。
例えば、Python Script TOP内に以下のコードを記述すると、Qtダイアログ内のOKボタンがクリックされるまでクックの継続をブロックするQtメッセージを表示するワークアイテムが作成されます:
def show_dialog(message, text): from hutil.Qt import QtWidgets dialog = QtWidgets.QMessageBox() dialog.setWindowTitle(message) dialog.setText(text) dialog.exec_() work_item.node.scheduler.runOnMainThread( True, show_dialog, "Cook PDG Message", "Click 'OK' to continue cooking.")
transferFile(local_path)
→ bool
ローカルファイルをスケジューラの作業ディレクトリに転送し、必要に応じて中間パスを作成します。
成功するとTrue
を返します。
workingDir(local)
→ str
local
がTrue
の場合、作業ディレクトリのローカル絶対パスを返します。
False
の場合、このスケジューラ特有のそのパスのリモート
バージョンを返します。
これは__PDG_DIR__
と等価です。
tempDir(local)
→ str
local
がTrue
の場合、一時ディレクトリのローカル絶対パスを返します。
False
の場合、このスケジューラ特有のそのパスのリモート
バージョンを返します。
これは、ログファイルやスクリプトファイルなどのクックの一時ファイルの保存に使用されるpdgtemp
サブディレクトリを含んだディレクトリです。
scriptDir(local)
→ str
local
がTrue
の場合、一時スクリプトディレクトリのローカル絶対パスを返します。
False
の場合、このスケジューラ特有のそのパスのリモート
バージョンを返します。
これは、tempDir(local) + "/scripts"
と等価のパスを返す便利メソッドです。
logDir(local)
→ str
local
がTrue
の場合、一時ログディレクトリのローカル絶対パスを返します。
False
の場合、このスケジューラ特有のそのパスのリモート
バージョンを返します。
これは、tempDir(local) + "/logs"
と等価のパスを返す便利メソッドです。
preExecProcess()
→ None
子プロセスが実行される直前にローカルサブプロセスでコールしてください(Posixのみ)。 新しいセッションを作成し、os.killpgで利用できるように新しいpidと同じgroupidを割り当てます。 これによって、サブプロセスツリー全体をクリーンアップすることができます。 さらに、そのサブプロセスの寿命は親プロセスに依存するので、その親プロセスが死亡するとSIGTERMがそのサブプロセスに送信されます。
postExecProcess(pid)
→ None
ローカルサブプロセスを起動した後に、そのローカルサブプロセスを設定する時にコールします。 サブプロセスの寿命は親プロセスに依存します。
maxThreads()
→ int
プロセスで利用可能な論理CPUコア数を返します。
これは、hou.setMaxThreads()またはHOUDINI_MAXTHREADS
環境変数で変更しない限りローカルマシンのコア数と同じです。
dataDir(local)
→ str
local
がTrue
の場合、一時データディレクトリのローカル絶対パスを返します。
False
の場合、このスケジューラ特有のそのパスのリモート
バージョンを返します。
これは、tempDir(local) + "/data"
と等価のパスを返す便利メソッドです。
このディレクトリには、通常ではジョブスクリプトで使用するJSONフォーマットでシリアライズ化されたワークアイテムが格納されます。
setAcceptInProcess(accept_in_process)
スケジューラがIn-Processワークアイテムを受け入れるかどうかを設定します。
デフォルトでは、これはFalse
になっています(In-Process Scheduler TOPを除く)。
setWorkingDir(local_path, remote_path)
→ None
ローカル作業ディレクトリパスとリモート作業ディレクトリパスの値を設定します。
workingDir
を参照してください。
setTempDir(local_path, remote_path)
→ None
ローカル一時ディレクトリパスとリモート一時ディレクトリパスの値を設定します。
tempDir
を参照してください。
workItemResultServerAddr()
→ str
ワークアイテム結果サーバーのネットワークエンドポイントを<HOST>:<PORT>の書式で返します。
これは、__PDG_RESULT_SERVER__
コマンドトークンや$PDG_RESULT_SERVERジョブ環境変数と等価です。
通常では、これがXMLRPC APIサーバーになります。
setWorkItemResultServerAddr(addr)
→ None
workItemResultServerAddr
が返す値を設定します。
startService(service)
→ bool
PDG Service Managerは、このメソッドをコールして、このスケジューラが使用するサービスを起動します。 このスケジューラは、PDGサービスに対応させる場合には必ずこのメソッドの実装を用意しなければなりません。
このメソッドは、成功すればTrue
、失敗すればFalse
を返します。
stopService(service)
→ bool
PDG Service Managerは、このメソッドをコールして、このスケジューラで起動されたサービスを停止します。 このスケジューラは、PDGサービスに対応させる場合には必ずこのメソッドの実装を用意しなければなりません。
このメソッドは、成功すればTrue
、失敗すればFalse
を返します。
Methods from pdg.TypeInstance
type
: pdg.BaseType
Property
このインスタンスの構築に使用されているpdg.BaseTypeオブジェクト。
typeName
: str
Property
type
オブジェクトのタイプ名。