diff --git a/src/simudator/gui/module_graphics_item/module_graphics_item.py b/src/simudator/gui/module_graphics_item/module_graphics_item.py index 320ae760e0371dcfdf35560097006fd9feec0d06..172f5d4e3d74682db7c8b84647b574c99da98cd1 100644 --- a/src/simudator/gui/module_graphics_item/module_graphics_item.py +++ b/src/simudator/gui/module_graphics_item/module_graphics_item.py @@ -183,12 +183,27 @@ class ModuleGraphicsItem(QGraphicsObject, QGraphicsItem): """ try: parsed_value = ast.literal_eval(value) + + # ast.literal_eval only raises an error the the + # parsed value isn't a valid data type. + # If the user edits GRX and enters a string "a" + # it will crash + + if isinstance(parsed_value, list): + for value in parsed_value: + if isinstance(value, str): + raise TypeError + except SyntaxError as e: self.errorMessageWidget.showMessage(str(e)) except ValueError as e: self.errorMessageWidget.showMessage( "Value Error. Unable to parse input. Make sure it is in the correct base." ) + except TypeError as e: + self.errorMessageWidget.showMessage( + "Type Error. Unable to parse input. Make sure it is the correct type." + ) else: module_state = self.module.get_state() module_state[state] = parsed_value