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
This commit is contained in:
Debanjum Singh Solanky
2022-08-12 01:34:08 +03:00
parent 44fe70513a
commit fad2f3a2e7
2 changed files with 9 additions and 6 deletions

View File

@@ -3,7 +3,7 @@ import argparse
import pathlib import pathlib
# Internal Packages # 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 from src.utils.yaml import parse_config_from_file
@@ -20,7 +20,10 @@ def cli(args=None):
args = parser.parse_args(args) 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 args.config = None
else: else:
args.config = parse_config_from_file(args.config_file) args.config = parse_config_from_file(args.config_file)

View File

@@ -5,7 +5,7 @@ from pathlib import Path
import yaml import yaml
# Internal Packages # 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 from src.utils.rawconfig import FullConfig
# Do not emit tags when dumping to YAML # 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 # Create output directory, if it doesn't exist
yaml_config_file.parent.mkdir(parents=True, exist_ok=True) 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) yaml.safe_dump(yaml_config, config_file, allow_unicode=True)
def load_config_from_file(yaml_config_file: Path) -> dict: 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(yaml_config_file, 'r', encoding='utf-8') as config_file:
config_from_file = yaml.safe_load(config_file) config_from_file = yaml.safe_load(config_file)
return config_from_file return config_from_file