X-Git-Url: https://mudpy.org/gitweb?p=mudpy.git;a=blobdiff_plain;f=mudpy%2Fdata.py;h=d9eb8ebcf0af12ccfb47268da521a2b666e9f2f2;hp=5233da24f5b85270068453099ff7b55a9f36f60e;hb=94de2d767ffb9c4bc13470b4bbc7219e96119565;hpb=1e9fd62ecb7c3f1563d674cb6417272524a516be diff --git a/mudpy/data.py b/mudpy/data.py index 5233da2..d9eb8eb 100644 --- a/mudpy/data.py +++ b/mudpy/data.py @@ -12,6 +12,26 @@ import mudpy 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.""" @@ -144,8 +164,9 @@ class Data: 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