Do not emit type tags when dumping config YAML to file

This commit is contained in:
Debanjum Singh Solanky
2022-08-11 19:08:36 +03:00
parent 678fb6a3c7
commit 23e06f483d

View File

@@ -1,3 +1,6 @@
# Standard Packages
from pathlib import Path
# External Packages # External Packages
import yaml import yaml
@@ -5,14 +8,16 @@ import yaml
from src.utils.helpers import get_absolute_path from src.utils.helpers import get_absolute_path
from src.utils.rawconfig import FullConfig from src.utils.rawconfig import FullConfig
# Do not emit tags when dumping to YAML
yaml.emitter.Emitter.process_tag = lambda self, *args, **kwargs: None
def save_config_to_file(yaml_config, yaml_config_file): def save_config_to_file(yaml_config: dict, yaml_config_file: Path):
"Write config to YML file" "Write config to YML file"
with open(get_absolute_path(yaml_config_file), 'w', encoding='utf-8') as config_file: with open(get_absolute_path(yaml_config_file), 'w', encoding='utf-8') as config_file:
yaml.dump(yaml_config, config_file, allow_unicode=True) yaml.safe_dump(yaml_config, config_file, allow_unicode=True)
def load_config_from_file(yaml_config_file): def load_config_from_file(yaml_config_file: Path) -> dict:
"Read config from YML file" "Read config from YML file"
config_from_file = None config_from_file = None
with open(get_absolute_path(yaml_config_file), 'r', encoding='utf-8') as config_file: with open(get_absolute_path(yaml_config_file), 'r', encoding='utf-8') as config_file:
@@ -20,7 +25,7 @@ def load_config_from_file(yaml_config_file):
return config_from_file return config_from_file
def parse_config_from_string(yaml_config): def parse_config_from_string(yaml_config: dict) -> FullConfig:
"Parse and validate config in YML string" "Parse and validate config in YML string"
return FullConfig.parse_obj(yaml_config) return FullConfig.parse_obj(yaml_config)