X-Git-Url: https://jfr.im/git/erebus.git/blobdiff_plain/3d724d3a4b12e184c8973a129a18191add52243e..3f04e4668f01e9eda6e56d5357cb8afb87c4d871:/ctlmod.py diff --git a/ctlmod.py b/ctlmod.py index 402fdc8..f52a776 100644 --- a/ctlmod.py +++ b/ctlmod.py @@ -30,14 +30,12 @@ def load(parent, modname, dependent=False): def _load(parent, modname, dependent=False): if not isloaded(modname): - sys.path.insert(0, 'modules') try: - mod = __import__(modname) + mod = __import__('modules.'+modname, globals(), locals(), ['*'], -1) + # ^ fromlist doesn't actually do anything(?) but it means we don't have to worry about this returning the top-level "modules" object reload(mod) #in case it's been previously loaded. - except BaseException as e: #we don't want even sys.exit() to crash us (in case of malicious module) so use BaseException + except Exception as e: return modlib.error(e) - finally: - del sys.path[0] #remove ./modules from path, in case there's a name conflict if not hasattr(mod, 'modinfo'): @@ -103,5 +101,3 @@ def unloadall(parent, modlist): for m in modlist: unload(parent, m) def reloadall(parent, modlist): for m in modlist: reloadmod(parent, m) - -sys.path.append('modules')