

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 式クイックリファレンス
<a name="build-job-bundle-expressions-reference"></a>

式は、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 関数ライブラリ](https://github.com/OpenJobDescription/openjd-specifications/wiki/2026-02-Expression-Language#2-function-library)を参照してください。

次の変数を使用できます。ジョブパラメータはジョブの作成時に認識されるため、`Param`値のみを使用する式が評価されます。タスク変数とセッション変数はワーカーでのみ認識されるため、それらを使用する式は送信時に型チェックされ、タスクの実行時に評価されます。


| 変数 | 型 | 説明 | 
| --- | --- | --- | 
| Param.{{Name}} | 宣言型 | ジョブパラメータ値。PATH および LIST[PATH]パラメータには、パスマッピングルールが適用されています。 | 
| RawParam.{{Name}} | string | パスマッピングの前に送信されたPATHパラメータの元の値。を呼び出す前に、これを使用して別のオペレーティングシステムからのパスを操作しますapply\_path\_mapping()。 | 
| Task.Param.{{Name}} | 宣言型 | タスクパラメータ値。CHUNK[INT] パラメータは ですrange\_expr。 list()を呼び出してフレームを反復します。 | 
| Task.File.{{Name}}, Env.File.{{Name}} | 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, {{a}} if {{test}} else {{b}} | {{ '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()、、スライス [{{start}}:{{stop}}] | {{ 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()、インデックス作成 [{{i}}]、[{{expr}} for {{x}} in {{list}}]、、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({{message}}) メッセージでジョブの作成を停止する | {{ 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`、空の文字列は指定されたとおりに保持されます。の条件はブール値`{{a}} if {{test}} else {{b}}`である必要があります。整数は 64 ビットで、オーバーフローはサイレントラップではなくエラーです。さまざまなタイプの値を と比較するの`==`はエラー`false`ではなく、 と `int` を比較`float`して`string`比較する点が異なります`path`。JSON リテラル `null`、`true`、および `false`は、`None`、`True`、および と一緒に使用できます`False`。

詳細については、以下のリソースを参照してください。
+ GitHub ウェブサイトの [Open Job Description 式言語](https://github.com/OpenJobDescription/openjd-specifications/wiki/2026-02-Expression-Language) – 文法、型システム、評価ルール、および署名付きのすべての演算子と関数。
+ [ジョブテンプレートに式を追加する](build-job-bundle-expressions-add.md) – テンプレートに式を追加します。