Commit e67a56db authored by AUTOMATIC's avatar AUTOMATIC

fix to make scripts that failed to compile not crash the program

parent 226de5e5
...@@ -41,17 +41,21 @@ def load_scripts(basedir): ...@@ -41,17 +41,21 @@ def load_scripts(basedir):
with open(path, "r", encoding="utf8") as file: with open(path, "r", encoding="utf8") as file:
text = file.read() text = file.read()
from types import ModuleType try:
compiled = compile(text, path, 'exec') from types import ModuleType
module = ModuleType(filename) compiled = compile(text, path, 'exec')
exec(compiled, module.__dict__) 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): for key, script_class in module.__dict__.items():
obj = script_class() if type(script_class) == type and issubclass(script_class, Script):
obj.filename = path 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): def wrap_call(func, filename, funcname, *args, default=None, **kwargs):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment