YAML intermediar

CI/CD pentru Machine Learning

Ravi Bhadauria

Machine Learning Engineer

Șiruri multilinie: formatul scalar bloc

  • Reprezintă șiruri multilinie sau blocuri de text
    • Fragmente de cod (comenzi shell)
    • Paragrafe (jurnale de log)
    • Fișiere de configurare

Grafic ierarhic al unui șir bloc YAML, cu nodul rădăcină „Block String" evidențiat.

CI/CD pentru Machine Learning

Indicatori de stil - literal

  • Stilul literal (|): păstrează întreruperile de linie și indentarea
  • Util pentru scrierea comenzilor shell
commands: |
  echo "Running python script..."
  python3 script.py

Grafic ierarhic al unui șir bloc YAML, cu nodul frunză „Literal Style" evidențiat.

CI/CD pentru Machine Learning

Exemplu de stil literal

Exemplu YAML de text scris în stilul literal multilinie. Textul este precedat de simbolul "|".

Rezultatul textului scris în stilul literal multilinie YAML.

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

Indicatori de stil - fold

  • Stilul fold (>): elimină întreruperile de linie
  • Util pentru mesaje lungi, sub formă de paragrafe
message: >
  Successfully executed the code!
  All processes completed 
  without any errors.
  The results have been saved 
  in the designated
  output directory.

Grafic ierarhic al unui șir bloc YAML, cu nodul frunză „Fold Style" evidențiat.

CI/CD pentru Machine Learning

Exemplu de stil fold

Exemplu YAML de text scris în stilul fold multilinie. Textul este precedat de simbolul ">".

Rezultatul textului scris în stilul fold multilinie YAML.

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

Indicatori de chomping

  • Controlează comportamentul liniilor noi la sfârșitul șirului
  • Se adaugă după indicatorii de stil
  • clip: modul implicit, o singură linie nouă la sfârșit
    • Nu necesită simbol suplimentar

Grafic ierarhic al unui șir bloc YAML, cu nodul frunză „Clip Chomping indicator" evidențiat.

CI/CD pentru Machine Learning

Indicatori de chomping - strip

  • strip (-): elimină toate liniile noi de la sfârșit

Grafic ierarhic al unui șir bloc YAML, cu nodul frunză „Strip Chomping indicator" evidențiat.

CI/CD pentru Machine Learning

Exemplu de strip chomping

Exemplu YAML de text în stilul literal multilinie cu strip chomping. Textul este precedat de simbolul "|-".

Rezultatul textului în stilul literal multilinie YAML cu strip chomping. Acesta elimină toate liniile noi de la sfârșit.

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

Indicatori de chomping - keep

  • keep (+): păstrează toate liniile noi de la sfârșit

Grafic ierarhic al unui șir bloc YAML, cu nodul frunză „Keep Chomping indicator" evidențiat.

CI/CD pentru Machine Learning

Exemplu de keep chomping

Exemplu YAML de text în stilul literal multilinie cu keep chomping. Textul este precedat de simbolul "|+".

Rezultatul textului în stilul literal multilinie YAML cu keep chomping. Acesta nu elimină nicio linie nouă de la sfârșit.

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

Injectarea dinamică a valorilor

  • Expresiile permit interpretoarelor să substituie dinamic valori
  • Utilizare:
    • Variabile de mediu
    • Referințe la alte părți ale fișierului YAML
  • Reprezentate de obicei ca ${{ ... }}
database:
  host: ${{ config.database.host }}
  port: ${{ config.database.port }}
  username: ${{ config.database.username }}
  password: ${{ config.database.password }}
CI/CD pentru Machine Learning

YAML cu mai multe documente

  • Mai multe documente YAML distincte într-un singur fișier
  • Fiecare document conține conținut YAML valid
  • Organizare ușoară pe documente înrudite
  • Documentele se separă prin trei liniuțe –––
___
- name: John
  age: 30
___
- name: Jane
  age: 28
___
- name: Bob
  age: 35
  occupation: Developer
CI/CD pentru Machine Learning

Rezumat

Denumire Simbol YAML
Indicator stil literal |
Indicator stil fold >
Indicator chomping strip
Indicator chomping keep +
Expresii ${{ ... }}
YAML cu mai multe documente –––
CI/CD pentru Machine Learning

Să exersăm!

CI/CD pentru Machine Learning

Preparing Video For Download...