import importlib, pkgutil, pathlib PLUGIN_DIR = pathlib.Path(__file__).parent.parent / "plugins" def load_plugins(): plugins = {} for _, name, _ in pkgutil.iter_modules([str(PLUGIN_DIR)]): mod = importlib.import_module(f"plugins.{name}") for attr in dir(mod): obj = getattr(mod, attr) if hasattr(obj, "name") and callable(getattr(obj, "on_node", None)): plugins[obj.name] = obj() return plugins