Source code for astromodels.core.my_yaml

__author__ = "giacomov"

# The purpose of this module is to customize yaml so that it will load ordered dictionaries instead of normal
# ones. This way the order in which things are expressed in the file is maintained.

import yaml as my_yaml

import collections

_mapping_tag = my_yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG


[docs] def dict_representer(dumper, data): return dumper.represent_dict(list(data.items()))
[docs] def dict_constructor(loader, node): return collections.OrderedDict(loader.construct_pairs(node))
my_yaml.add_representer(collections.OrderedDict, dict_representer) my_yaml.add_constructor(_mapping_tag, dict_constructor)