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


hello: !include bar.yaml



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)