feat: Plugins system allows __init__.py for relative imports

This commit is contained in:
Jordan ⌨️ 2023-11-25 12:28:37 +01:00
parent a9ef90c04e
commit 56f252f588

View file

@ -1,5 +1,6 @@
import os
import logging import logging
import os
import sys
from . import shell, model, const from . import shell, model, const
@ -17,6 +18,7 @@ def load(path: str):
return None return None
module = importlib.module_from_spec(spec) module = importlib.module_from_spec(spec)
sys.modules["plugin"] = module
spec.loader.exec_module(module) spec.loader.exec_module(module)
@ -33,7 +35,11 @@ def loadAll():
for dirname in paths: for dirname in paths:
pluginDir = os.path.join(project.dirname(), dirname, const.META_DIR, "plugins") pluginDir = os.path.join(project.dirname(), dirname, const.META_DIR, "plugins")
initFile = os.path.join(pluginDir, "__init__.py")
for files in shell.readdir(pluginDir): if os.path.isfile(initFile):
if files.endswith(".py"): load(initFile)
load(os.path.join(pluginDir, files)) else:
for files in shell.readdir(pluginDir):
if files.endswith(".py"):
load(os.path.join(pluginDir, files))