YAML intermedio

CI/CD per Machine Learning

Ravi Bhadauria

Machine Learning Engineer

Stringhe multilinea: formato scalare a blocchi

  • Rappresenta stringhe multilinea o blocchi di testo
    • Frammenti di codice (comandi shell)
    • Paragrafi (log)
    • File di configurazione

Un diagramma gerarchico della stringa a blocchi YAML, con il nodo radice "Block String" evidenziato.

CI/CD per Machine Learning

Indicatori di stile - letterale

  • Stile letterale (|): preserva a capo e rientri
  • Utile per scrivere comandi shell
commands: |
  echo "Running python script..."
  python3 script.py

Un diagramma gerarchico della stringa a blocchi YAML, con il nodo foglia "Literal Style" evidenziato.

CI/CD per Machine Learning

Esempio di stile letterale

Esempio YAML di testo scritto in stile letterale multilinea. Il testo è preceduto dal simbolo "|".

Output del testo scritto in YAML in stile letterale multilinea.

1 https://yaml-multiline.info/
CI/CD per Machine Learning

Indicatori di stile - ripiegato

  • Stile ripiegato (>): rimuove gli a capo
  • Utile per messaggi a capo automatico, come paragrafi
message: >
  Successfully executed the code!
  All processes completed 
  without any errors.
  The results have been saved 
  in the designated
  output directory.

Un diagramma gerarchico della stringa a blocchi YAML, con il nodo foglia "Fold Style" evidenziato.

CI/CD per Machine Learning

Esempio di stile ripiegato

Esempio YAML di testo scritto in stile ripiegato multilinea. Il testo è preceduto dal simbolo ">".

Output del testo scritto in YAML in stile ripiegato multilinea.

1 https://yaml-multiline.info/
CI/CD per Machine Learning

Indicatori di chomping

  • Controlla il comportamento degli a capo alla fine della stringa
  • Aggiunti dopo gli indicatori di stile
  • clip: modalità predefinita, un solo a capo finale
    • Nessun simbolo aggiuntivo richiesto

Un diagramma gerarchico della stringa a blocchi YAML, con il nodo foglia "Clip Chomping indicator" evidenziato.

CI/CD per Machine Learning

Indicatori di chomping - strip

  • strip (-): rimuove tutti gli a capo finali

Un diagramma gerarchico della stringa a blocchi YAML, con il nodo foglia "Strip Chomping indicator" evidenziato.

CI/CD per Machine Learning

Esempio di strip chomping

Esempio YAML di testo scritto in stile letterale multilinea con strip chomping. Il testo è preceduto dal simbolo "|-".

Output del testo scritto in YAML in stile letterale multilinea con strip chomping. Quest'ultimo rimuove tutti gli a capo finali.

1 https://yaml-multiline.info/
CI/CD per Machine Learning

Indicatori di chomping - keep

  • keep (+): mantiene tutti gli a capo finali

Un diagramma gerarchico della stringa a blocchi YAML, con il nodo foglia "Keep Chomping indicator" evidenziato.

CI/CD per Machine Learning

Esempio di keep chomping

Esempio YAML di testo scritto in stile letterale multilinea con keep chomping. Il testo è preceduto dal simbolo "|+".

Output del testo scritto in YAML in stile letterale multilinea con keep chomping. Quest'ultimo non rimuove alcun a capo finale.

1 https://yaml-multiline.info/
CI/CD per Machine Learning

Inserimento dinamico di valori

  • Le espressioni permettono ai parser di sostituire valori in modo dinamico
  • Usi:
    • Variabili d'ambiente
    • Riferimenti ad altre parti di YAML
  • Tipicamente rappresentate come ${{ ... }}
database:
  host: ${{ config.database.host }}
  port: ${{ config.database.port }}
  username: ${{ config.database.username }}
  password: ${{ config.database.password }}
CI/CD per Machine Learning

YAML multi-documento

  • Più documenti YAML separati in un unico file
  • Ogni documento contiene YAML valido
  • Facile da organizzare per documenti correlati
  • Separa i documenti con tre trattini –––
___
- name: John
  age: 30
___
- name: Jane
  age: 28
___
- name: Bob
  age: 35
  occupation: Developer
CI/CD per Machine Learning

Riepilogo

Nome Simbolo YAML
Indicatore stile letterale |
Indicatore stile ripiegato >
Indicatore strip chomping −
Indicatore keep chomping +
Espressioni ${{ ... }}
YAML multi-documento –––
CI/CD per Machine Learning

Esercitiamoci!

CI/CD per Machine Learning

Preparing Video For Download...