#!/usr/bin/env python3 # -*- coding: utf-8 -*- import yaml import sys import os from functools import reduce def read_config(path): """ Read a value from the configuration :return: value (it can be any type) """ dir = "/".join(sys.path[0].split("/")[:-2]) config = yaml.load(open(os.path.join(dir, "config.yaml"), "r"), Loader=yaml.SafeLoader) return reduce(dict.get, path, config) def write_config(cat, key, value): """ Write a new value in the configuration :return: bool, operation status """ try: dir = "/".join(sys.path[0].split("/")[:-2]) config = yaml.load(open(os.path.join(dir, "config.yaml"), "r"), Loader=yaml.SafeLoader) config[cat][key] = value with open(os.path.join(dir, "config.yaml"), "w") as yaml_file: yaml_file.write(yaml.dump(config, default_flow_style=False)) return True except: return False