

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
<a name="build-job-bundle-expressions-reference"></a>

Le espressioni utilizzano un sottoinsieme della sintassi delle espressioni Python. I valori hanno uno dei tipi`bool`,,`int`,, `float` `string``path`, `range_expr` o. `list[{{T}}]` I parametri Job hanno la forma minuscola del tipo dichiarato, quindi un `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](https://github.com/OpenJobDescription/openjd-specifications/wiki/2026-02-Expression-Language#2-function-library) sul GitHub sito web.

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.{{Name}} | 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.{{Name}} | 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.{{Name}} | Tipo dichiarato | Un valore del parametro dell'attività. Un CHUNK[INT] parametro è unrange\_expr; list() chiamatelo per iterare i frame. | 
| Task.File.{{Name}}, Env.File.{{Name}} | 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, {{a}} if {{test}} else {{b}} | {{ '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 [{{start}}:{{stop}}] | {{ 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[{{i}}],,,[{{expr}} for {{x}} in {{list}}],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({{message}})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. `or`Gli operatori `and` and restituiscono uno dei loro operandi e contano solo `false` e `null` contano come falso`0`, 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 `{{a}} if {{test}} else {{b}}` 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 `==` è `false` piuttosto che un errore, tranne per il `int` confronto `float` e `string` il confronto con. `path` I valori letterali JSON`null`,`true`, `false` sono accettati insieme a`None`, e. `True` `False`

Per maggiori informazioni, consulta le seguenti risorse:
+ Il [linguaggio di espressione Open Job Description](https://github.com/OpenJobDescription/openjd-specifications/wiki/2026-02-Expression-Language) 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](build-job-bundle-expressions-add.md)— Aggiungere espressioni a un modello.