Середній рівень YAML

CI/CD для машинного навчання

Ravi Bhadauria

Machine Learning Engineer

Багаторядкові рядки: формат блочного скаляра

  • Подання багаторядкових рядків або блоків тексту
    • Фрагменти коду (команди shell)
    • Абзаци (логи)
    • Файли конфігурації

Ієрархічна схема YAML Block string з виділеним кореневим вузлом «Block String».

CI/CD для машинного навчання

Індикатори стилю — буквальний

  • Буквальний стиль (|): зберігає розриви рядків і відступи
  • Зручно для запису команд shell
commands: |
  echo "Running python script..."
  python3 script.py

Ієрархічна схема YAML Block string з виділеним листком «Literal Style».

CI/CD для машинного навчання

Приклад буквального стилю

Приклад YAML із текстом у багаторядковому буквальному стилі. Текст має префікс «|».

Результат виводу тексту, записаного у YAML у буквальному багаторядковому стилі.

1 https://yaml-multiline.info/
CI/CD для машинного навчання

Індикатори стилю — згорнутий

  • Згорнутий стиль (>): прибирає розриви рядків
  • Корисно для обгорнутих повідомлень, як-от абзаци
message: >
  Successfully executed the code!
  All processes completed 
  without any errors.
  The results have been saved 
  in the designated
  output directory.

Ієрархічна схема YAML Block string з виділеним листком «Fold Style».

CI/CD для машинного навчання

Приклад згорнутого стилю

Приклад YAML із текстом у багаторрядковому згорнутому стилі. Текст має префікс «>».

Результат виводу тексту, записаного у YAML у згорнутому багаторядковому стилі.

1 https://yaml-multiline.info/
CI/CD для машинного навчання

Індикатори зрізання кінців

  • Керуйте поведінкою нових рядків у кінці рядка
  • Додаються після індикаторів стилю
  • clip: режим за замовчуванням, один новий рядок наприкінці
    • Додатковий символ не потрібен

Ієрархічна схема YAML Block string з виділеним листком «Clip Chomping indicator».

CI/CD для машинного навчання

Зрізання кінців — strip

  • strip (-): прибирає всі нові рядки наприкінці

Ієрархічна схема YAML Block string з виділеним листком «Strip Chomping indicator».

CI/CD для машинного навчання

Приклад strip-зрізання

Приклад YAML у буквальному багаторядковому стилі зі strip-зрізанням. Текст має префікс «|-».

Результат для YAML у буквальному стилі зі strip-зрізанням: усі кінцеві нові рядки видалено.

1 https://yaml-multiline.info/
CI/CD для машинного навчання

Зрізання кінців — keep

  • keep (+): зберігає всі нові рядки наприкінці

Ієрархічна схема YAML Block string з виділеним листком «Keep Chomping indicator».

CI/CD для машинного навчання

Приклад keep-зрізання

Приклад YAML у буквальному багаторядковому стилі з keep-зрізанням. Текст має префікс «|+».

Результат для YAML у буквальному стилі з keep-зрізанням: кінцеві нові рядки не видаляються.

1 https://yaml-multiline.info/
CI/CD для машинного навчання

Динамічне підставляння значень

  • Вирази дають парсерам змогу динамічно підставляти значення
  • Використання:
    • Змінні середовища
    • Посилання на інші частини YAML
  • Зазвичай записують як ${{ ... }}
database:
  host: ${{ config.database.host }}
  port: ${{ config.database.port }}
  username: ${{ config.database.username }}
  password: ${{ config.database.password }}
CI/CD для машинного навчання

Багатодокументний YAML

  • Кілька окремих документів YAML в одному файлі
  • Кожен документ містить валідний YAML
  • Зручно групувати пов'язані документи
  • Розділяйте документи трьома дефісами –––
___
- name: John
  age: 30
___
- name: Jane
  age: 28
___
- name: Bob
  age: 35
  occupation: Developer
CI/CD для машинного навчання

Підсумок

Назва Символ YAML
Індикатор буквального стилю |
Індикатор згорнутого стилю >
Індикатор strip-зрізання
Індикатор keep-зрізання +
Вирази ${{ ... }}
Багатодокументний YAML –––
CI/CD для машинного навчання

Давайте потренуємось!

CI/CD для машинного навчання

Preparing Video For Download...