Files
the-littlest-jupyterhub/tljh/yaml.py
Min RK d331936812 consolidate yaml configuration
workaround ruamel.yaml issue 255,
where once an empty dict or list has been written,
'flow' style is used thereafter, using dense `{key: value}` form
instead of traditional yaml block style.
2018-11-01 11:34:16 +01:00

33 lines
788 B
Python

"""consolidated yaml API
ensures the same yaml settings for reading/writing
throughout tljh
"""
from ruamel.yaml.composer import Composer
from ruamel.yaml import YAML
class _NoEmptyFlowComposer(Composer):
"""yaml composer that avoids setting flow_style on empty
containers.
workaround ruamel.yaml issue #255
"""
def compose_mapping_node(self, anchor):
node = super().compose_mapping_node(anchor)
if not node.value:
node.flow_style = False
return node
def compose_sequence_node(self, anchor):
node = super().compose_sequence_node(anchor)
if not node.value:
node.flow_style = False
return node
# create the global yaml object:
yaml = YAML(typ="rt")
yaml.Composer = _NoEmptyFlowComposer