import yaml
+class _IBSEmitter(yaml.emitter.Emitter):
+
+ """Override the default YAML Emitter to indent block sequences."""
+
+ def expect_block_sequence(self):
+ """Match the expectations of the ``yamllint`` style checker."""
+
+ # TODO(fungi) Get an option for this implemented upstream in
+ # the pyyaml library
+ self.increase_indent(flow=False, indentless=False)
+ self.state = self.expect_first_block_sequence_item
+
+
+class _IBSDumper(yaml.SafeDumper, _IBSEmitter):
+
+ """Use our _IBSEmitter instead of the default implementation."""
+
+ pass
+
+
class Data:
"""A file containing universe elements and their facets."""
os.umask(old_umask)
# write and close the file
- yaml.safe_dump(self.data, allow_unicode=True,
- default_flow_style=False, stream=file_descriptor)
+ yaml.dump(self.data, Dumper=_IBSDumper, allow_unicode=True,
+ default_flow_style=False, explicit_start=True, indent=4,
+ stream=file_descriptor)
file_descriptor.close()
# unset the modified flag