diff --git a/generator/var_parser.py b/generator/var_parser.py index ee48b97142912ddfcd605127a6246cc9d8c9e85a..d60962fe52361a226b7ee2cd4d840eabd0dc9dc4 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 8598814082addddf0ee4274197bd86aadc2dd69d..96873a28fcb2672abd7075d421566f3ec8e1cff2 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,2 +1,2 @@ [metadata] -version = v0.1.0rc1 +version = v0.1.1rc0