Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
try:
## included in standard lib from Python 2.7
from collections import OrderedDict
except ImportError: ## pragma: no cover
## try importing the backported drop-in replacement
## it's available on PyPI
from ordereddict import OrderedDict
## Ensure that there are no collision with legacy OrderedDict
## that could be used for omap for instance.
class MyOrderedDict(OrderedDict):
pass
ShyamlSafeDumper.add_representer(
MyOrderedDict,
lambda cls, data: cls.represent_dict(data.items()))
def construct_omap(cls, node):
## Force unfolding reference and merges
## otherwise it would fail on 'merge'
cls.flatten_mapping(node)
return MyOrderedDict(cls.construct_pairs(node))
ShyamlSafeLoader.add_constructor(
yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG,
construct_omap)