Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Kurzreferenz zu Expressions
Ausdrücke verwenden eine Teilmenge der Python-Ausdruckssyntax. Werte haben einen der Typenbool,int,float,string, pathrange_expr, oderlist[. Job-Parameter haben die Kleinbuchstabenform ihres deklarierten Typs, sodass ein T]PATH Parameter ein path Wert und ein CHUNK[INT] Task-Parameter ein range_expr ist. Jede Funktion kann auch als Methode für ihr erstes Argument aufgerufen werden, also upper(Param.Name) Param.Name.upper() sind sie identisch. Auf dieser Seite sind die Teile der Sprache aufgeführt, die in Job-Templates am häufigsten verwendet werden. Die vollständige Funktionsbibliothek finden Sie in der Funktionsbibliothek Open Job Description
Die folgenden Variablen sind verfügbar. Die Jobparameter sind bekannt, wenn der Job erstellt wird, sodass ein Ausdruck, der nur Param Werte verwendet, dann ausgewertet wird. Aufgaben- und Sitzungsvariablen sind nur dem Worker bekannt, sodass ein Ausdruck, der sie verwendet, bei der Übermittlung typgeprüft und bei der Ausführung der Aufgabe ausgewertet wird.
| Variable | Typ | Description |
|---|---|---|
Param. |
Deklarierter Typ | Ein Job-Parameterwert. Für die LIST[PATH] Parameter PATH und wurden Pfadzuordnungsregeln angewendet. |
RawParam. |
string |
Der ursprüngliche Wert eines PATH Parameters, wie er vor der Pfadzuweisung übermittelt wurde. Verwenden Sie ihn, um einen Pfad von einem anderen Betriebssystem aus zu manipulieren, bevor Sie ihn aufrufenapply_path_mapping(). |
Task.Param. |
Deklarierter Typ | Ein Wert für einen Aufgabenparameter. Ein CHUNK[INT] Parameter ist einrange_expr; rufen Sie ihn list() auf, um die Frames zu iterieren. |
Task.File.,
Env.File. |
path |
Der Ort auf dem Worker, an dem eine eingebettete Datei geschrieben wurde. |
Session.WorkingDirectory |
path |
Das temporäre Arbeitsverzeichnis der Sitzung auf dem Worker. |
Job.Name, Step.Name |
string |
Der Name des aufgelösten Jobs und der aktuelle Schrittname. |
Die folgenden Operatoren und Funktionen decken den Großteil der Vorlagenlogik ab.
| Kategorie | Operatoren und Funktionen | Beispiel |
|---|---|---|
| Arithmetisch | + - * / // % **, abs(), min(),
max(), sum(), floor(), ceil(),
round() |
{{ min(Param.FrameRange) }}und {{ max(Param.FrameRange) }} für den ersten und letzten Frame eines Frame-Bereichsparameters |
| Vergleich und Logik | == != < <= > >=, in, not
in, and, or, not,
|
{{ 'large' if Param.Epochs >= 100 else 'small' }} |
| Konvertierung | string(), int(), float(),
bool(), path(), list(),
range_expr() |
{{ len(list(Task.Param.Frame)) }} |
| Zeichenfolgen | upper(),lower(),strip(),replace(),split(),join(),startswith(),endswith(),zfill(),removeprefix(),removesuffix(), schneiden [ |
{{ zfill(Task.Param.Frame, 4) }} |
| Reguläre Ausdrücke | re_match(), re_search(), re_findall(),
re_sub(), re_split(), re_escape() |
{{ re_search(Param.Dataset.stem, r'_v(\d+)')[1] }} |
| Pfade | /verbinden, Text + anhängen,,.name,.stem,.suffix,.parent,.parts,with_suffix(),with_stem(), with_number() as_posix() apply_path_mapping() |
{{ Param.OutputPattern.with_number(Task.Param.Frame) }} |
| Listen | len(), Indizierung[,[,,sorted(),reversed(), unique() flatten() range() |
{{ [Param.OutputDir / f for f in Param.Files] }} |
| Zitieren von Skripten | repr_sh()für bash, repr_pwsh() für PowerShell, repr_cmd() für Windows CMD, repr_py() für Python, repr_json() für JSON |
{{ repr_pwsh(list(Task.Param.Frame)) }} |
| Validierung | fail(stoppt die Auftragserstellung mit einer Meldung |
{{ Param.Count if Param.Count > 0 else fail('Count must be positive') }} |
Die with_number() Funktion ersetzt die Frame-Nummer in einem Dateinamen, unabhängig davon, ob der Name einen Platzhalter oder eine tatsächliche Zahl enthält. Sie erkennt Hash-Padding wie #### im Printf-Stil %04d und eine Ziffernfolge wie0001, und füllt das Ergebnis mit derselben Breite auf. Ein Parameterwert kann also ein Muster oder die erste Datei einer Sequenz sein:path('/renders/shot_####.exr'),path('/renders/shot_%04d.exr'), und path('/renders/shot_0001.exr') alle geben für. /renders/shot_0072.exr with_number(72) Wenn der Name nichts davon enthält, hängt die Funktion eine vierstellige Zahl an den Stamm an.
Einige Verhaltensweisen unterscheiden sich von Python. Die or Operatoren and und geben nur einen ihrer Operanden zurück false und null zählen als falsch0, also eine leere Zeichenfolge und eine leere Liste nicht. Auf diese Weise kann or ein Fallback für einen nicht gesetzten Wert bereitgestellt werden: {{ Param.OutputName or Param.InputFile.stem }} verwendet den Namen der Eingabedatei, wenn der optionale Parameter istnull, und eine leere Zeichenfolge wird wie angegeben beibehalten. Die Bedingung in muss ein boolescher Wert sein. Ganzzahlen sind 64-Bit-Werte, und ein Überlauf ist eher ein Fehler als ein stilles Umbrechen. Der Vergleich von Werten verschiedener Typen mit a if test else
b== ist false kein Fehler, außer dass ein int Vergleich mit float und string ein Vergleich mit. path Die JSON-Literale nulltrue, und false werden zusammen mit NoneTrue, und False akzeptiert.
Weitere Informationen finden Sie in den folgenden Ressourcen:
-
Die Ausdruckssprache von Open Job Description
auf der GitHub Website — Die Grammatik, das Typsystem, die Bewertungsregeln und jeder Operator und jede Funktion mit ihrer Signatur. -
Fügen Sie Ausdrücke zu einer Jobvorlage hinzu— Fügen Sie Ausdrücke zu einer Vorlage hinzu.