| Inheritence |
|
メソッド
applicationBin(name, work_item)
→ str
指定した名前のアプリケーションのパスを返します。
work_item引数を使用することで、Schedulerノード上のパラメータを評価することができます。
例: scheduler.applicationBin('python', None)はPythonベースのジョブで使用されるPython実行可能ファイルのパスを返します。
cleanTempDirectory()
一時ディレクトリとその内容を削除します。
isCompressWorkItemData
: bool
Property
ワークアイテムJSONデータを圧縮するようにスケジューラが構成されている場合はTrueを返します。
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(workitem_id, index)
→ pdg.workItemReadyResult
指定したワークアイテムがクックの準備ができている場合はpdg.workItemReadyResult.WorkItemReadyを返します。
そのワークアイテムが依存関係に失敗している場合はWorkItemFailed列挙エントリーを返します。
そのワークアイテムがまだ待機中の場合はWorkItemBlockedを返します。
そのワークアイテムがバッチでない場合はindex引数に-1を、バッチ内のサブアイテムの場合はそのワークアイテムのバッチインデックスを指定してください。
jobName(work_item)
→ str
ワークアイテムの普段のファームジョブ名を返します。
ワークアイテムにカスタムラベルが設定されていれば、この関数はそのラベルをそのまま返します。
それ以外の場合、@pdg_name @pdg_index:4 @pdg_frame:2の書式による文字列を返します。
localizePath(path)
→ str
スケジューラの作業ディレクトリを基準にリモートパスを展開します。
これは、__PDG_DIR__, __PDG_TEMP__, __PDG_SCRIPTDIR__を現行マシン上の絶対パスに置換します。
delocalizePath(path)
→ str
指定したパスを可能な限り__PDG_DIR__スケジューラテキストトークンに基づいたパスで返します。
onWorkItemAppendLog(workitem_id, index, log_data, log_type)
指定したログデータをワークアイテムのログの最後に追加します。
log_typeには、pdg.workItemLogTypeからどれかの列挙値を設定してください。
indexには、ワークアイテムがバッチでない場合は-1を、ワークアイテムがバッチ内のサブアイテムの場合はそのワークアイテムのバッチインデックスを設定してください。
onWorkItemCanceled(workitem_id, index)
ワークアイテムがキャンセルされた時にコールされます。
指定したワークアイテムがバッチでない場合はindexに-1を、バッチ内のサブアイテムの場合はそのワークアイテムのバッチインデックスを指定してください。
onWorkItemFailed(workitem_id, index)
ワークアイテムが失敗した時にコールされます。
指定したワークアイテムがバッチでない場合はindexに-1を、バッチ内のサブアイテムの場合はそのワークアイテムのバッチインデックスを指定してください。
onWorkItemFileResult(workitem_id, index, result, tag, checksum, active_only=False)
ワークアイテムが新しい結果を持った時にコールされます。
このresultには、そのファイルのパスを文字列で指定し、tagには、そのファイルのタグ文字列、checksumには、整数値を指定します。
指定したワークアイテムがバッチでない場合はindexに-1を、バッチ内のサブアイテムの場合はそのワークアイテムのバッチインデックスを指定してください。
active_onlyがTrueの場合、スケジュラーは、既にクックを終了したワークアイテムまたはスケジューラでアクティブになっていないワークアイテムに呼応したこのメソッドのコールを無視します。
onWorkItemInvalidateCache(workitem_id, index)
出力ファイルリストを変更せずに、ワークアイテムのキャッシュを無効にします。 これにより、次のクックでキャッシュファイルを使用せずに、下流のワークアイテムも再クックされます。 これは、ワークアイテムに対して直接pdg.WorkItem.invalidateCacheをコールすることと同じ効果があります。
onWorkItemSetAttribute(workitem_id, attribute_name, values)
このメソッドは廃止されました。pdg.SchedulerBase.onWorkItemSetStringAttribや他のメソッドを使用してアトリビュートを追加してください。
ワークアイテムのアトリビュート値が設定/変更された時にコールされます。
valuesはstr、float、intのどれかの値の配列で、attribute_nameはそのアトリビュートの文字列名です。
onWorkItemSetStringAttrib(workitem_id, index, attribute_name, value, [attrib_index])
ワークアイテム上にアトリビュート値が設定/変更された時にコールされます。
attribute_nameは、そのアトリビュートの名前です。
attrib_indexを渡した場合、アトリビュート内のそのインデックスに値が設定されます。
その場合、valueには文字列を指定してください。
それ以外の場合、valueには文字列のリストを指定してください。
ワークアイテムがバッチでない場合、indexには-1を指定してください。
ワークアイテムがバッチ内のサブアイテムの場合、indexには、そのサブアイテムのバッチインデックスを指定してください。
onWorkItemSetIntAttrib(workitem_id, index, attribute_name, value, [attrib_index])
ワークアイテム上にアトリビュート値が設定/変更された時にコールされます。
attribute_nameは、そのアトリビュートの名前です。
attrib_indexを渡した場合、アトリビュート内のそのインデックスに値が設定されます。
その場合、valueには整数を指定してください。
それ以外の場合、valueには値のリストを指定してください。
ワークアイテムがバッチでない場合、indexには-1を指定してください。
ワークアイテムがバッチ内のサブアイテムの場合、indexには、そのサブアイテムのバッチインデックスを指定してください。
onWorkItemSetFloatAttrib(workitem_id, index, attribute_name, value, [attrib_index])
ワークアイテム上にアトリビュート値が設定/変更された時にコールされます。
attribute_nameは、そのアトリビュートの名前です。
attrib_indexを渡した場合、アトリビュート内のそのインデックスに値が設定されます。
その場合、valueにはfloatを指定してください。
それ以外の場合、valueには値のリストを指定してください。
ワークアイテムがバッチでない場合、indexには-1を指定してください。
ワークアイテムがバッチ内のサブアイテムの場合、indexには、そのサブアイテムのバッチインデックスを指定してください。
onWorkItemSetFileAttrib(workitem_id, index, attribute_name, value, [attrib_index])
ワークアイテム上にアトリビュート値が設定/変更された時にコールされます。
attribute_nameは、そのアトリビュートの名前です。
attrib_indexを渡した場合、アトリビュート内のそのインデックスに値が設定されます。
その場合、valueにはpdg.Fileを指定してください。
それ以外の場合、valueにはpdg.Fileのリストを指定してください。
ワークアイテムがバッチでない場合、indexには-1を指定してください。
ワークアイテムがバッチ内のサブアイテムの場合、indexには、そのサブアイテムのバッチインデックスを指定してください。
onWorkItemSetPyObjectAttrib(workitem_id, index, attribute_name, object_repr)
ワークアイテム上にアトリビュート値が設定/変更された時にコールされます。
object_reprにはPythonオブジェクトのrepr文字列を指定し、attribute_nameには、そのアトリビュートの文字列名を指定してください。
ワークアイテムがバッチでない場合、indexには-1を指定してください。
ワークアイテムがバッチ内のサブアイテムの場合、indexには、そのサブアイテムのバッチインデックスを指定してください。
onWorkItemStartCook(workitem_id, index, clear_outputs=False)
ワークアイテムがクックを開始した時にコールされます。 ワークアイテムが既にクックを完了していれば、このメソッドは何の効果もありません。
指定したワークアイテムがバッチでない場合はindexに-1を、バッチ内のサブアイテムの場合はそのワークアイテムのバッチインデックスを指定してください。
clear_outputsがTrueの場合、以前のクック以降にワークアイテムに追加された既存の出力ファイルがクリアされます。
onWorkItemSucceeded(workitem_id, 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を返します。
workItemDataSource
: pdg.workItemDataSource
Property
このスケジューラの/tops/pdg/Py.pdg.WorkItemDataSource設定で、ワークアイテムデータをリモートワーカーマシンに転送する方法を決めます。
Methods from pdg.TypeInstance
type
: pdg.BaseType
Property
このインスタンスの構築に使用されているpdg.BaseTypeオブジェクト。
typeName
: str
Property
typeオブジェクトのタイプ名。