feat: Plugins system allows __init__.py for relative imports
This commit is contained in:
parent
a9ef90c04e
commit
56f252f588
|
@ -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))
|
||||||
|
|
Loading…
Reference in a new issue