The official YAML spec doesn't support embedding external files inside a YAML file, a feature that can be extremely useful for maintenance of long/complex YAML files. I found this great code snippet yaml-include-snippet for including other YAML files in your top-level YAML.
However, the code above assumes the include path is relative to the script invocation path, when it's more likely that you want to refer to your sub-YAML files relative to the top-level YAML file. So, here's my small modification to enable this:
def yaml_include(loader, node): # Get the path out of the yaml file file_name = os.path.join(os.path.dirname(loader.name), node.value) with file(file_name) as inputfile: return yaml.load(inputfile) yaml.add_constructor("!include", yaml_include)