From f3ac154fe2bffb0148b12adb5ad9dce763383775 Mon Sep 17 00:00:00 2001 From: jesopo Date: Sun, 9 Feb 2020 10:15:08 +0000 Subject: add ModuleManager.try_reload_module(), use it for !reloadmodule --- src/ModuleManager.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/ModuleManager.py') diff --git a/src/ModuleManager.py b/src/ModuleManager.py index 2ad086ea..b8dcd107 100644 --- a/src/ModuleManager.py +++ b/src/ModuleManager.py @@ -402,6 +402,20 @@ class ModuleManager(object): [loaded_module.name, ", ".join([str(referrer) for referrer in referrers])]) + def try_reload_module(self, bot: "IRCBot.Bot", name: str): + loaded_module = self.modules.pop(name) + loaded_module.module.on_pause() + + new_definition = self.find_module(name) + try: + self.load_module(bot, new_definition) + except: + loaded_module.module.on_resume() + self.modules[name] = loaded_module + raise + + self._unload_module(loaded_module) + def try_reload_modules(self, bot: "IRCBot.Bot", whitelist: typing.List[str], blacklist: typing.List[str]): loadable, nonloadable = self._list_valid_modules( -- cgit v1.3.1-10-gc9f91