#!/usr/bin/python3
# part of https://github.com/WolfgangFahl/ProceedingsTitleParser
# Yaml persistence
import yaml
import io
import os
[docs]class YamlAbleMixin(object):
""" allow reading and writing derived objects from a yaml file"""
debug = False
# read me from a yaml file
[docs] @staticmethod
def readYaml(name):
yamlFile = name
if not yamlFile.endswith(".yaml"):
yamlFile = yamlFile + ".yaml"
# is there a yamlFile for the given name
if os.path.isfile(yamlFile):
with io.open(yamlFile, 'r') as stream:
if YamlAbleMixin.debug:
print("reading %s" % (yamlFile))
result = yaml.load(stream, Loader=yaml.Loader)
if (YamlAbleMixin.debug):
print (result)
return result
else:
return None
# write me to my yaml file
[docs] def writeYaml(self, name):
yamlFile = name
if not yamlFile.endswith(".yaml"):
yamlFile = yamlFile + ".yaml"
with io.open(yamlFile, 'w', encoding='utf-8') as stream:
yaml.dump(self, stream)
if YamlAbleMixin.debug:
print (yaml.dump(self))