Пример #1
0
    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.')
Пример #2
0
 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()
Пример #3
0
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()
Пример #4
0
def redump(stream):
    docs = list(loadOrdered(stream))
    dumper = Dumper()
    dumper.alphaSort = 0
    return dumper.dump(*docs)