From 4d75c0215e12590815cbd86345ad7a7f16fbeb6d Mon Sep 17 00:00:00 2001 From: Juraj Paluba <492988@mail.muni.cz> Date: Thu, 24 Mar 2022 14:34:08 +0100 Subject: [PATCH] Resolve "Create parser for variables from the json object" --- generator/var_parser.py | 38 ++++++++++++++++++++++---------------- setup.cfg | 2 +- 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/generator/var_parser.py b/generator/var_parser.py index ee48b97..d60962f 100644 --- a/generator/var_parser.py +++ b/generator/var_parser.py @@ -1,8 +1,25 @@ +from typing import List + import yaml from generator.var_object import Variable +def get_variables(variables_raw: dict) -> List[Variable]: + var_objects = [] + for variable_name, variable_options in variables_raw.items(): + v_type = variable_options["type"] + v_min = variable_options.get("min") + v_max = variable_options.get("max") + v_length = variable_options.get("length") + v_prohibited = variable_options.get("prohibited") + if v_prohibited is None: + v_prohibited = [] + var_objects.append(Variable(variable_name, v_type, v_min, v_max, v_prohibited, v_length)) + + return var_objects + + def parser_var_file(var_file): """ Main function to parsen source data stored in file. @@ -19,20 +36,9 @@ def parser_var_file(var_file): """ try: - var_list = yaml.load(var_file, Loader=yaml.FullLoader) - var_objects = [] - for var in var_list.keys(): - v_name = var - v_type = var_list[var]["type"] - v_min = var_list[var].get("min") - v_max = var_list[var].get("max") - v_length = var_list[var].get("length") - v_prohibited = var_list[var].get("prohibited") - if v_prohibited is None: - v_prohibited = [] - var_objects.append(Variable(v_name, v_type, v_min, v_max, v_prohibited, v_length)) - except Exception as e: - print("Error occure") + variables_raw = yaml.load(var_file, Loader=yaml.FullLoader) + return get_variables(variables_raw) + except Exception as exc: + # TODO: Remove this horrendous exception handling! + print(f"Something went wrong: {exc}") return None - - return var_objects diff --git a/setup.cfg b/setup.cfg index 8598814..96873a2 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,2 +1,2 @@ [metadata] -version = v0.1.0rc1 +version = v0.1.1rc0 -- GitLab