Easy pyymal file inclusion

YAML does not support file inclusion. If this feature is needed, it is necessary to write your own constructor to support a new tag like !include.

Example YAML files

foo.yaml:

hello: !include bar.yaml

bar.yaml:

'world'

resulting yaml:

hello: 'world'

Example code

import yaml


def include_constructor(loader, node):
    filename = node.value
    include = yaml.load(open(filename, 'r'), Loader=yaml.SafeLoader)
    return include


Loader = yaml.CLoader
Loader.add_constructor(u'!include', include_constructor)


yaml_data = yaml.load(open('foo.yaml', 'r'), Loader=yaml.CLoader)

KTHXBYE.