Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Riferimento rapido alle espressioni
Le espressioni utilizzano un sottoinsieme della sintassi delle espressioni Python. I valori hanno uno dei tipibool,,int,, float stringpath, range_expr o. list[ I parametri Job hanno la forma minuscola del tipo dichiarato, quindi un T]PATH parametro è un path valore e un parametro CHUNK[INT] task è un. range_expr Qualsiasi funzione può essere chiamata come metodo anche al suo primo argomento, quindi upper(Param.Name) e Param.Name.upper() sono uguali. Questa pagina elenca le parti del linguaggio più utilizzate dai modelli di lavoro. Per la libreria di funzioni completa, vedere la libreria di funzioni Open Job Description
Sono disponibili le seguenti variabili. I parametri del lavoro sono noti al momento della creazione del lavoro, quindi viene valutata un'espressione che utilizza solo Param valori. Le variabili di attività e sessione sono note solo al lavoratore, pertanto un'espressione che le utilizza viene sottoposta a controllo del tipo al momento dell'invio e valutata durante l'esecuzione dell'attività.
| Variabile | Tipo | Description |
|---|---|---|
Param. |
Tipo dichiarato | Un valore del parametro di lavoro. Per LIST[PATH] i parametri PATH e, sono state applicate le regole di mappatura dei percorsi. |
RawParam. |
string |
Il valore originale di un PATH parametro così come inviato, prima della mappatura del percorso. Utilizzatelo per manipolare un percorso da un altro sistema operativo prima di effettuare una chiamata. apply_path_mapping() |
Task.Param. |
Tipo dichiarato | Un valore del parametro dell'attività. Un CHUNK[INT] parametro è unrange_expr; list() chiamatelo per iterare i frame. |
Task.File.,
Env.File. |
path |
La posizione sul worker in cui è stato scritto un file incorporato. |
Session.WorkingDirectory |
path |
La cartella di lavoro temporanea della sessione sul lavoratore. |
Job.Name, Step.Name |
string |
Il nome del processo risolto e il nome del passo corrente. |
I seguenti operatori e funzioni coprono la maggior parte della logica dei modelli.
| Categoria | Operatori e funzioni | Esempio |
|---|---|---|
| Aritmetica | + - * / // % **, abs(), min(),
max(), sum(), floor(), ceil(),
round() |
{{ min(Param.FrameRange) }}e {{ max(Param.FrameRange) }} per il primo e l'ultimo frame di un parametro di intervallo di frame |
| Comparazione e logica | == != < <= > >=, in, not
in, and, or, not,
|
{{ 'large' if Param.Epochs >= 100 else 'small' }} |
| Conversione | string(), int(), float(),
bool(), path(), list(),
range_expr() |
{{ len(list(Task.Param.Frame)) }} |
| Stringhe | upper(),lower(),strip(),replace(),split(),join(),startswith(),endswith(),zfill(), removeprefix()removesuffix(), affettare [ |
{{ zfill(Task.Param.Frame, 4) }} |
| Espressioni regolari | re_match(), re_search(), re_findall(),
re_sub(), re_split(), re_escape() |
{{ re_search(Param.Dataset.stem, r'_v(\d+)')[1] }} |
| Percorsi | /unire, + aggiungere testo,,,.name,.stem,.suffix,.parent,.parts,with_suffix(),with_stem(), with_number() as_posix() apply_path_mapping() |
{{ Param.OutputPattern.with_number(Task.Param.Frame) }} |
| Elenchi | len(), indicizzazione[,,,[,sorted(), reversed() unique() flatten() range() |
{{ [Param.OutputDir / f for f in Param.Files] }} |
| Citazione dello script | repr_sh()per bash, repr_pwsh() per PowerShell, repr_cmd() per Windows CMD, per repr_py() Python, per JSON repr_json() |
{{ repr_pwsh(list(Task.Param.Frame)) }} |
| Convalida | fail(interrompe la creazione di posti di lavoro con un messaggio |
{{ Param.Count if Param.Count > 0 else fail('Count must be positive') }} |
La with_number() funzione sostituisce il numero di frame in un nome di file, indipendentemente dal fatto che il nome contenga un segnaposto o un numero effettivo. Riconosce l'hash padding####, ad esempio printf-style, e una serie di cifre%04d, ad esempio, e assegna al risultato la stessa 0001 larghezza. Quindi il valore di un parametro può essere uno schema o il primo file di una sequenza:path('/renders/shot_####.exr'), e tutto corrisponde. path('/renders/shot_%04d.exr') path('/renders/shot_0001.exr') /renders/shot_0072.exr with_number(72) Quando il nome non contiene nessuna di queste, la funzione aggiunge un numero di quattro cifre alla radice.
Alcuni comportamenti differiscono da Python. orGli operatori and and restituiscono uno dei loro operandi e contano solo false e null contano come falso0, quindi una stringa vuota e un elenco vuoto no. In questo modo è possibile fornire un fallback per un valore non impostato: {{ Param.OutputName or Param.InputFile.stem }} utilizza il nome del file di input quando il parametro opzionale è null e una stringa vuota viene mantenuta come indicato. or La condizione in deve essere booleana. I numeri interi sono a 64 bit e un overflow è un errore anziché un involucro silenzioso. Il confronto di valori di tipi diversi con a if test else
b== è false piuttosto che un errore, tranne per il int confronto float e string il confronto con. path I valori letterali JSONnull,true, false sono accettati insieme aNone, e. True False
Per maggiori informazioni, consulta le seguenti risorse:
-
Il linguaggio di espressione Open Job Description
sul GitHub sito web: la grammatica, il sistema di tipi, le regole di valutazione e ogni operatore e funzione con la sua firma. -
Aggiungere espressioni a un modello di lavoro— Aggiungere espressioni a un modello.