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