YAML

Module YAML provides a configuration reader implementation for the YAML format.

config.yml

version: 1
list:
  - item_1
  - item_2
dict:
  key_1: value_1
  key_2: value_2
complex:
  path:
    to:
      list:
        - item_10
        - item_11
        - item_12
      dict:
        key_10: value_10
        key_11: value_11

See also

YAML Standard 1.2.2

https://yaml.org/spec/1.2.2/

Official YAML Website

https://yaml.org/

Wikipedia

https://en.wikipedia.org/wiki/YAML

Reading a YAML Formatted Config File

from pathlib import Path
from pyTooling.Configuration.YAML import Configuration

configFile = Path("config.yml")
config = Configuration(configFile)

Accessing Values by Name

# root-level scalar value
configFileFormatVersion = config["version"]

# value in a sequence
firstItemInList = config["list"][0]

# first value in dictionary
firstItemInDict = config["dict"]["key_1"]

Store Nodes in Variables

# store intermediate node
node = config["complex"]["path"]["to"]

# navigate further
nestedList = node["list"]
nestedDict = node["dict"]

Iterate Sequences

# simple list
simpleList = config["list"]
for item in simpleList:
  pass

# deeply nested list
nestedList = config["complex"]["path"]["to"]["list"]
for item in nestedList:
  pass

Iterate Dictionaries

Todo

YAML:: Needs documentation