From e67a56dbb4643c7ddd01668bcd7c4ec7f58f7d81 Mon Sep 17 00:00:00 2001 From: AUTOMATIC <16777216c@gmail.com> Date: Sat, 3 Sep 2022 19:59:11 +0300 Subject: [PATCH] fix to make scripts that failed to compile not crash the program --- modules/scripts.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/modules/scripts.py b/modules/scripts.py index 37a23682..99502857 100644 --- a/modules/scripts.py +++ b/modules/scripts.py @@ -41,17 +41,21 @@ def load_scripts(basedir): with open(path, "r", encoding="utf8") as file: text = file.read() - from types import ModuleType - compiled = compile(text, path, 'exec') - module = ModuleType(filename) - exec(compiled, module.__dict__) + try: + from types import ModuleType + compiled = compile(text, path, 'exec') + module = ModuleType(filename) + exec(compiled, module.__dict__) - for key, script_class in module.__dict__.items(): - if type(script_class) == type and issubclass(script_class, Script): - obj = script_class() - obj.filename = path + for key, script_class in module.__dict__.items(): + if type(script_class) == type and issubclass(script_class, Script): + obj = script_class() + obj.filename = path - scripts.append(obj) + scripts.append(obj) + except Exception: + print(f"Error loading script: {filename}", file=sys.stderr) + print(traceback.format_exc(), file=sys.stderr) def wrap_call(func, filename, funcname, *args, default=None, **kwargs):