diff options
Diffstat (limited to 'src/py/mod.py')
-rw-r--r-- | src/py/mod.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/py/mod.py b/src/py/mod.py new file mode 100644 index 0000000..c41b839 --- /dev/null +++ b/src/py/mod.py @@ -0,0 +1,33 @@ +import sys +from importlib import import_module + +mod_info = {} + +def load(mod_name, mod_path, *args): + if( + mod_name in mod_info or + mod_path in sys.modules + ): + raise NameError + + instance = import_module(mod_path, "") + instance.load(*args) + mod_info[mod_name] = [instance, args, mod_path] + return instance + +def reload(mod_name): + instance, args, mod_path = mod_info[mod_name] + instance = import_module(mod_path, "") + instance.load(*args) + mod_info[mod_name][0] = instance + return instance + + +def unload(mod_name): + instance, args, mod_path = mod_info[mod_name] + instance.unload() + del sys.modules[mod_path] + del mod_info[mod_name] + +def list_mod(): + print(list(mod_info.keys())) |