Introduzione a YAML

CI/CD per Machine Learning

Ravi Bhadauria

Machine Learning Engineer

Che cos'è YAML?

  • YAML: YAML Ain't Markup Language
  • Usato in file di configurazione, scambio dati e rappresentazione di dati strutturati
  • Un linguaggio di formattazione dati simile a JSON e XML
  • Consente un formato standard per trasferire dati tra linguaggi o applicazioni
  • Formato semplice e pulito
  • Estensioni valide: .yaml o .yml
  • Usato per scrivere configurazioni per vari strumenti CI/CD:
    • GitHub Actions
    • Data Version Control (DVC)
CI/CD per Machine Learning

Sintassi YAML

  • YAML ha una struttura gerarchica
    • L'indentazione è significativa
  • Le tab non sono permesse
  • Validator YAML (https://www.yamllint.com/)
  • I commenti iniziano con #
name: Ravi
occupation: Instructor
# This is a valid comment
programming_languages: # and this one too
  python: Advanced
  go: Intermediate
  scala: Beginner
CI/CD per Machine Learning

Scalari YAML

  • Numeri: interi o a virgola mobile
  • Booleani: true o false
  • Null: parola chiave null o ~
  • Stringhe: testo semplice o racchiuse in '' o ""
# Integer
42
# Floating point
3.14
# Boolean
true
# Null values
null
# String value
a: "A string in YAML"
b: 'A string in YAML'
c: A string in YAML
CI/CD per Machine Learning

Collezioni YAML

Sequenze

  • Chiamate anche liste, array o vettori
  • Scritte in due stili:

    • Stile a blocchi

      - first
      - second
      - third
      
    • Stile in linea

      [first, second, third]
      

Mapping

  • Detti anche dizionari, coppie chiave-valore, hash o oggetti
  • Chiavi univoche, qualsiasi dato valido come valore
  • Chiavi e valori separati da :
key1: value1
blocklist:
  - first
  - second
flowlist: [1.2, 2, "fifty", true]
CI/CD per Machine Learning

Riepilogo

  • YAML è un linguaggio di formattazione dei dati
  • Utile per scrivere configurazioni CI/CD
  • L'indentazione è molto importante
    • Le tab non sono permesse
  • Mapping, sequenze e scalari sono i mattoni di YAML

Un grafico gerarchico della struttura dati YAML.

CI/CD per Machine Learning

Layout degli esercizi nell'editor

Immagine annotata del layout dell'esercizio nell'editor con cartella, file e terminale.

CI/CD per Machine Learning

Esercitiamoci!

CI/CD per Machine Learning

Preparing Video For Download...