This repository has been archived on 2024-04-07. You can view files and clone it, but cannot push or open issues or pull requests.
dotfiles/dotfiles/qutebrowser/source_yaml.py

30 lines
805 B
Python

#!/bin/env python
# {{@@ header() @@}}
# ___ _ _
# / _ \ _ _| |_ ___| |__ _ __ _____ _____ ___ _ __
# | | | | | | | __/ _ \ '_ \| '__/ _ \ \ /\ / / __|/ _ \ '__|
# | |_| | |_| | || __/ |_) | | | (_) \ V V /\__ \ __/ |
# \__\_\\__,_|\__\___|_.__/|_| \___/ \_/\_/ |___/\___|_|
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)