From fad2f3a2e75fb116d210fb9c5beb2d20ffde73f3 Mon Sep 17 00:00:00 2001 From: Debanjum Singh Solanky Date: Fri, 12 Aug 2022 01:34:08 +0300 Subject: [PATCH] Resolve config_file to absolute right at start on parsing args in cli - Assume path is absolute in yaml util module while saving, loading file - This follows same convention as jsonl. Which just operates on passed file path, assuming it is of appropriate form. Responsibility to put it in appropriate form is on the caller, for now --- src/utils/cli.py | 9 ++++++--- src/utils/yaml.py | 6 +++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/utils/cli.py b/src/utils/cli.py index 0e8a61ea..e855f706 100644 --- a/src/utils/cli.py +++ b/src/utils/cli.py @@ -3,7 +3,7 @@ import argparse import pathlib # Internal Packages -from src.utils.helpers import resolve_absolute_path +from src.utils.helpers import get_absolute_path, resolve_absolute_path from src.utils.yaml import parse_config_from_file @@ -20,9 +20,12 @@ def cli(args=None): args = parser.parse_args(args) - if not resolve_absolute_path(args.config_file).exists(): + # Normalize config_file path to absolute path + args.config_file = resolve_absolute_path(args.config_file) + + if not args.config_file.exists(): args.config = None else: args.config = parse_config_from_file(args.config_file) - return args \ No newline at end of file + return args diff --git a/src/utils/yaml.py b/src/utils/yaml.py index e313c1f1..46ddb788 100644 --- a/src/utils/yaml.py +++ b/src/utils/yaml.py @@ -5,7 +5,7 @@ from pathlib import Path import yaml # Internal Packages -from src.utils.helpers import get_absolute_path +from src.utils.helpers import get_absolute_path, resolve_absolute_path from src.utils.rawconfig import FullConfig # Do not emit tags when dumping to YAML @@ -16,14 +16,14 @@ def save_config_to_file(yaml_config: dict, yaml_config_file: Path): # Create output directory, if it doesn't exist yaml_config_file.parent.mkdir(parents=True, exist_ok=True) - with open(get_absolute_path(yaml_config_file), 'w', encoding='utf-8') as config_file: + with open(yaml_config_file, 'w', encoding='utf-8') as config_file: yaml.safe_dump(yaml_config, config_file, allow_unicode=True) def load_config_from_file(yaml_config_file: Path) -> dict: "Read config from YML file" config_from_file = None - with open(get_absolute_path(yaml_config_file), 'r', encoding='utf-8') as config_file: + with open(yaml_config_file, 'r', encoding='utf-8') as config_file: config_from_file = yaml.safe_load(config_file) return config_from_file