File size: 465 Bytes
29cdc9d
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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