refactor: clean up initialization and reloading

This commit is contained in:
2024-12-30 21:07:49 -05:00
parent 32817f735e
commit 04ef3d1c83
4 changed files with 32 additions and 29 deletions

19
core.py
View File

@@ -16,6 +16,9 @@ from state import command_locks
async def on_message(message):
if not message.content.startswith(constants.PREFIX):
return
tokens = commands.tokenize(message.content)
if not tokens:
return
@@ -122,16 +125,16 @@ async def on_message(message):
def rreload(reloaded_modules, module):
reloaded_modules.add(module.__name__)
importlib.reload(module)
if "__reload_module__" in dir(module):
module.__reload_module__()
with contextlib.suppress(AttributeError):
for submodule in filter(
lambda v: inspect.ismodule(v)
and v.__name__ in constants.RELOADABLE_MODULES
and v.__name__ not in reloaded_modules,
map(lambda attr: getattr(module, attr), dir(module)),
):
rreload(reloaded_modules, submodule)
for submodule in filter(
lambda v: inspect.ismodule(v)
and v.__name__ in constants.RELOADABLE_MODULES
and v.__name__ not in reloaded_modules,
vars(module).values(),
):
rreload(reloaded_modules, submodule)
importlib.reload(module)