翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
式クイックリファレンス
式は、Python 式の構文のサブセットを使用します。値には、、bool、、int、float、range_expr、または string pathのいずれかのタイプがありますlist[。ジョブパラメータは宣言型の小文字形式であるため、T]PATHパラメータはpath値、CHUNK[INT]タスクパラメータは ですrange_expr。任意の関数は、最初の引数でメソッドとして呼び出すことができるため、 upper(Param.Name)と は同じParam.Name.upper()です。このページでは、ジョブテンプレートが最も使用する言語の部分を一覧表示します。完全な関数ライブラリについては、GitHub ウェブサイトの Open Job Description 関数ライブラリ
次の変数を使用できます。ジョブパラメータはジョブの作成時に認識されるため、Param値のみを使用する式が評価されます。タスク変数とセッション変数はワーカーでのみ認識されるため、それらを使用する式は送信時に型チェックされ、タスクの実行時に評価されます。
| 変数 | 型 | 説明 |
|---|---|---|
Param. |
宣言型 | ジョブパラメータ値。PATH および LIST[PATH]パラメータには、パスマッピングルールが適用されています。 |
RawParam. |
string |
パスマッピングの前に送信されたPATHパラメータの元の値。を呼び出す前に、これを使用して別のオペレーティングシステムからのパスを操作しますapply_path_mapping()。 |
Task.Param. |
宣言型 | タスクパラメータ値。CHUNK[INT] パラメータは ですrange_expr。 list()を呼び出してフレームを反復します。 |
Task.File.,
Env.File. |
path |
埋め込みファイルが書き込まれたワーカー上の場所。 |
Session.WorkingDirectory |
path |
ワーカー上のセッションの一時作業ディレクトリ。 |
Job.Name, Step.Name |
string |
解決されたジョブ名と現在のステップ名。 |
以下の演算子と関数は、ほとんどのテンプレートロジックを対象としています。
| Category | 演算子と関数 | 例 |
|---|---|---|
| 算術 | + - * / // % **, abs(), min(),
max(), sum(), floor(), ceil(),
round() |
{{ min(Param.FrameRange) }} フレーム範囲パラメータの{{ max(Param.FrameRange) }}最初と最後のフレームの および |
| 比較とロジック | == != < <= > >=, in, not
in, and, or, not,
|
{{ 'large' if Param.Epochs >= 100 else 'small' }} |
| 変換 | string(), int(), float(),
bool(), path(), list(),
range_expr() |
{{ len(list(Task.Param.Frame)) }} |
| 文字列 | upper()、lower()、strip()、replace()、、split()、join()、startswith()、endswith()、zfill()、removeprefix()removesuffix()、、スライス [ |
{{ zfill(Task.Param.Frame, 4) }} |
| 正規表現 | re_match(), re_search(), re_findall(),
re_sub(), re_split(), re_escape() |
{{ re_search(Param.Dataset.stem, r'_v(\d+)')[1] }} |
| パス | / 結合、テキスト+の追加、、.name、.stem、.suffix、.parent.parts、、with_suffix()with_stem()with_number()as_posix()、、 apply_path_mapping() |
{{ Param.OutputPattern.with_number(Task.Param.Frame) }} |
| Lists | len()、インデックス作成 [、[、、sorted()、reversed()、unique()flatten()、 range() |
{{ [Param.OutputDir / f for f in Param.Files] }} |
| スクリプト引用 | repr_sh() for bash、 repr_pwsh() for PowerShell、 repr_cmd() for Windows CMD、 repr_py() for Python、 repr_json() for JSON |
{{ repr_pwsh(list(Task.Param.Frame)) }} |
| 検証 | fail( メッセージでジョブの作成を停止する |
{{ Param.Count if Param.Count > 0 else fail('Count must be positive') }} |
with_number() 関数は、名前がプレースホルダーを保持するか実際の番号を保持するかにかかわらず、ファイル名のフレーム番号を置き換えます。####、printf スタイルの などのハッシュパディング%04d、および などの数字の実行を認識し0001、結果を同じ幅にパディングします。したがって、パラメータ値はパターンでもシーケンスの最初のファイルでもかまいません。path('/renders/shot_####.exr')、path('/renders/shot_%04d.exr')、およびpath('/renders/shot_0001.exr')すべての が /renders/shot_0072.exrに与えますwith_number(72)。名前にこれらのいずれも含まれていない場合、関数はステムに 4 桁の数字を追加します。
いくつかの動作は Python とは異なります。and および or演算子はオペランドの 1 つを返し、 false と のみが false としてnullカウントされるため、0、空の文字列、および空のリストは返しません。これによりor、未設定の値にフォールバックを指定できます。オプションのパラメータが の場合、 は入力ファイルの名前{{ Param.OutputName or Param.InputFile.stem }}を使用しnull、空の文字列は指定されたとおりに保持されます。の条件はブール値である必要があります。整数は 64 ビットで、オーバーフローはサイレントラップではなくエラーです。さまざまなタイプの値を と比較するのa if test else b==はエラーfalseではなく、 と int を比較floatしてstring比較する点が異なりますpath。JSON リテラル null、true、および falseは、None、True、および と一緒に使用できますFalse。
詳細については、以下のリソースを参照してください。
-
GitHub ウェブサイトの Open Job Description 式言語
– 文法、型システム、評価ルール、および署名付きのすべての演算子と関数。 -
ジョブテンプレートに式を追加する – テンプレートに式を追加します。