Don't use YAML as a singleton, seems to be stateful; Use ruamel in get_config for consistency

This commit is contained in:
cmdr2 2023-06-30 10:37:25 +05:30
parent ec353ba90d
commit 26042b1e26
2 changed files with 5 additions and 4 deletions

View File

@ -17,10 +17,11 @@ args = parser.parse_args()
if os.path.isfile(config_yaml): if os.path.isfile(config_yaml):
import yaml from ruamel.yaml import YAML
yaml = YAML(typ='safe')
with open(config_yaml, 'r') as configfile: with open(config_yaml, 'r') as configfile:
try: try:
config = yaml.safe_load(configfile) config = yaml.load(configfile)
except Exception as e: except Exception as e:
print(e, file=sys.stderr) print(e, file=sys.stderr)
config = {} config = {}

View File

@ -18,8 +18,6 @@ from rich.console import Console
from rich.panel import Panel from rich.panel import Panel
from sdkit.utils import log as sdkit_log # hack, so we can overwrite the log config from sdkit.utils import log as sdkit_log # hack, so we can overwrite the log config
yaml = YAML()
# Remove all handlers associated with the root logger object. # Remove all handlers associated with the root logger object.
for handler in logging.root.handlers[:]: for handler in logging.root.handlers[:]:
logging.root.removeHandler(handler) logging.root.removeHandler(handler)
@ -107,6 +105,7 @@ def getConfig(default_val=APP_CONFIG_DEFAULTS):
config_yaml_path = os.path.join(CONFIG_DIR, "config.yaml") config_yaml_path = os.path.join(CONFIG_DIR, "config.yaml")
if os.path.isfile(config_yaml_path): if os.path.isfile(config_yaml_path):
try: try:
yaml = YAML()
with open(config_yaml_path, "r", encoding="utf-8") as f: with open(config_yaml_path, "r", encoding="utf-8") as f:
config = yaml.load(f) config = yaml.load(f)
if "net" not in config: if "net" not in config:
@ -145,6 +144,7 @@ def getConfig(default_val=APP_CONFIG_DEFAULTS):
def setConfig(config): def setConfig(config):
try: # config.yaml try: # config.yaml
config_yaml_path = os.path.join(CONFIG_DIR, "config.yaml") config_yaml_path = os.path.join(CONFIG_DIR, "config.yaml")
yaml = YAML()
yaml.indent(mapping=2, sequence=4, offset=2) yaml.indent(mapping=2, sequence=4, offset=2)
with open(config_yaml_path, "w", encoding="utf-8") as f: with open(config_yaml_path, "w", encoding="utf-8") as f:
yaml.dump(config, f) yaml.dump(config, f)