X-Git-Url: https://mudpy.org/gitweb?a=blobdiff_plain;f=mudpy%2Fdata.py;h=d9eb8ebcf0af12ccfb47268da521a2b666e9f2f2;hb=169e3f47cf892ef8e3cf06cb19b4fa6b31a17353;hp=3dc71d037ccd19c8d791e150981d95b70a9d74e2;hpb=bd00a5d42caab9b888430616fb098ecdb4e1001c;p=mudpy.git diff --git a/mudpy/data.py b/mudpy/data.py index 3dc71d0..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 @@ -161,7 +182,7 @@ class Data: def find_file( file_name=None, - category=None, + group=None, prefix=None, relative=None, search=None,