def read_config(self, fields: List[OptionInstance]) -> None: pure = True # get a scanner to read the yaml with open(self.__filename, "r+t") as file: options = load(file, Loader=Loader) if len(fields) > 0: for field in fields: if options is not None and field.name in options: # get the type field.return_value(options[field.name]) else: field.return_default() pure = False # check if there were any missing members if not pure: # write back to yaml with open(self.__filename, "w+t") as file: dumper = Dumper(stream=file) try: dumper.open() mapping = {field.name: field.value for field in fields} dumper.serialize(dumper.represent_mapping(None, mapping)) dumper.close() finally: dumper.dispose() raise OptionsError( 'Config is missing some members! Fill them out and try again.')
def dump_yaml(data): import io from yaml import Dumper stream = io.StringIO() dumper = Dumper(stream) try: dumper.open() dumper.represent(data) dumper.close() finally: dumper.dispose() return stream.getvalue()
def print_yaml(disasm, stream=sys.stdout): from yaml import Dumper dumper = Dumper(stream) # Force a Git-friendly output format: # https://stackoverflow.com/a/8641732 def strdump(dumper, data): return dumper.represent_scalar('tag:yaml.org,2002:str', data, style='|') dumper.add_representer(str, strdump) dumper.open() dumper.represent(disasm) dumper.close()
def redump(stream): docs = list(loadOrdered(stream)) dumper = Dumper() dumper.alphaSort = 0 return dumper.dump(*docs)