Zaawansowany YAML

CI/CD dla uczenia maszynowego

Ravi Bhadauria

Machine Learning Engineer

Ciągi wielowierszowe: format blokowy

  • Reprezentują wielowierszowe ciągi lub bloki tekstu
    • Fragmenty kodu (polecenia powłoki)
    • Akapity (logi)
    • Pliki konfiguracyjne

Hierarchiczny wykres ciągów blokowych YAML z wyróżnionym węzłem głównym "Block String".

CI/CD dla uczenia maszynowego

Wskaźniki stylu – literalny

  • Styl literalny (|): zachowuje podziały wierszy i wcięcia
  • Przydatny do pisania poleceń powłoki
commands: |
  echo "Running python script..."
  python3 script.py

Hierarchiczny wykres ciągów blokowych YAML z wyróżnionym węzłem liścia "Literal Style".

CI/CD dla uczenia maszynowego

Przykład stylu literalnego

Przykład YAML tekstu zapisanego w wielowierszowym stylu literalnym, poprzedzonego symbolem "|".

Wynik tekstu zapisanego w wielowierszowym stylu literalnym YAML.

1 https://yaml-multiline.info/
CI/CD dla uczenia maszynowego

Wskaźniki stylu – składanie

  • Styl składany (>): usuwa podziały wierszy
  • Przydatny do pisania długich komunikatów, np. akapitów
message: >
  Successfully executed the code!
  All processes completed 
  without any errors.
  The results have been saved 
  in the designated
  output directory.

Hierarchiczny wykres ciągów blokowych YAML z wyróżnionym węzłem liścia "Fold Style".

CI/CD dla uczenia maszynowego

Przykład stylu składanego

Przykład YAML tekstu zapisanego w wielowierszowym stylu składanym, poprzedzonego symbolem ">".

Wynik tekstu zapisanego w wielowierszowym stylu składanym YAML.

1 https://yaml-multiline.info/
CI/CD dla uczenia maszynowego

Wskaźniki przycinania

  • Kontrolują zachowanie znaków nowej linii na końcu ciągu
  • Dodawane po wskaźnikach stylu
  • clip: tryb domyślny – jedna nowa linia na końcu
    • Nie wymaga dodatkowego symbolu

Hierarchiczny wykres ciągów blokowych YAML z wyróżnionym węzłem liścia "Clip Chomping indicator".

CI/CD dla uczenia maszynowego

Wskaźniki przycinania – strip

  • strip (-): usuwa wszystkie nowe linie na końcu

Hierarchiczny wykres ciągów blokowych YAML z wyróżnionym węzłem liścia "Strip Chomping indicator".

CI/CD dla uczenia maszynowego

Przykład przycinania strip

Przykład YAML tekstu w wielowierszowym stylu literalnym z przycinaniem strip, poprzedzonego symbolem "|-".

Wynik tekstu w wielowierszowym stylu literalnym YAML z przycinaniem strip, które usuwa wszystkie nowe linie na końcu.

1 https://yaml-multiline.info/
CI/CD dla uczenia maszynowego

Wskaźniki przycinania – keep

  • keep (+): zachowuje wszystkie nowe linie na końcu

Hierarchiczny wykres ciągów blokowych YAML z wyróżnionym węzłem liścia "Keep Chomping indicator".

CI/CD dla uczenia maszynowego

Przykład przycinania keep

Przykład YAML tekstu w wielowierszowym stylu literalnym z przycinaniem keep, poprzedzonego symbolem "|+".

Wynik tekstu w wielowierszowym stylu literalnym YAML z przycinaniem keep, które nie usuwa żadnych nowych linii na końcu.

1 https://yaml-multiline.info/
CI/CD dla uczenia maszynowego

Dynamiczne wstawianie wartości

  • Wyrażenia umożliwiają parserom dynamiczne podstawianie wartości
  • Zastosowanie:
    • Zmienne środowiskowe
    • Odwołania do innych części YAML
  • Zazwyczaj zapisywane jako ${{ ... }}
database:
  host: ${{ config.database.host }}
  port: ${{ config.database.port }}
  username: ${{ config.database.username }}
  password: ${{ config.database.password }}
CI/CD dla uczenia maszynowego

YAML z wieloma dokumentami

  • Wiele oddzielnych dokumentów YAML w jednym pliku
  • Każdy dokument zawiera prawidłową zawartość YAML
  • Ułatwia organizację powiązanych dokumentów
  • Dokumenty oddziela się trzema myślnikami –––
___
- name: John
  age: 30
___
- name: Jane
  age: 28
___
- name: Bob
  age: 35
  occupation: Developer
CI/CD dla uczenia maszynowego

Podsumowanie

Nazwa Symbol YAML
Wskaźnik stylu literalnego |
Wskaźnik stylu składanego >
Wskaźnik przycinania strip
Wskaźnik przycinania keep +
Wyrażenia ${{ ... }}
YAML z wieloma dokumentami –––
CI/CD dla uczenia maszynowego

Czas na ćwiczenia!

CI/CD dla uczenia maszynowego

Preparing Video For Download...