Source code for s3vaultlib.utils.yaml

#!/usr/bin/env python
from ruamel.yaml import YAML
from ruamel.yaml.parser import ParserError, ScannerError
from six import StringIO

__author__ = "Giuseppe Chiesa"
__copyright__ = "Copyright 2017-2021, Giuseppe Chiesa"
__credits__ = ["Giuseppe Chiesa"]
__license__ = "BSD"
__maintainer__ = "Giuseppe Chiesa"
__email__ = "mail@giuseppechiesa.it"
__status__ = "PerpetualBeta"


[docs]def build_parser(*args, **kwargs): y = YAML(typ=kwargs.get('loader', 'safe')) y.default_flow_style = kwargs.get('default_flow_style', False) y.explicit_start = kwargs.get('explicit_start', True) y.width = 4096 y.indent(mapping=2, sequence=4, offset=2) return y
[docs]def load_from_stream(stream): y = build_parser() return y.load(stream)
[docs]def write_to_string(data): y = build_parser(loader='rt') dst = StringIO() y.dump(data, dst) return dst.getvalue()
[docs]def write_to_file(data, filename): with open(filename, 'wb') as fh: fh.write(write_to_string(data).encode())
__all__ = [ 'build_parser', 'load_from_stream', 'write_to_string', 'write_to_file', 'ParserError', 'ScannerError' ]