#!/bin/env python # {{@@ header() @@}} import yaml from qutebrowser.config.configfiles import ConfigAPI # type: ignore def dict_attrs(obj, path=''): if isinstance(obj, dict): for k, v in obj.items(): yield from dict_attrs(v, '{}.{}'.format(path, k) if path else k) else: yield path, obj def source_yaml(config: ConfigAPI, filename: str): with (config.configdir / filename).open() as f: yaml_data = yaml.safe_load(f) for k, v in dict_attrs(yaml_data): config.set(k, v)