Improving plugin imports

This commit is contained in:
itdominator 2022-09-05 20:15:32 -05:00
parent f5567d2631
commit d41235882a

View File

@ -21,6 +21,9 @@ class Plugins:
"""Plugins controller"""
def __init__(self, settings: type):
path = os.path.dirname(os.path.realpath(__file__))
sys.path.insert(0, path) # NOTE: I think I'm not using this correctly...
self._settings = settings
self._builder = self._settings.get_builder()
self._plugins_path = self._settings.get_plugins_path()
@ -69,11 +72,9 @@ class Plugins:
def load_plugin_module(self, path, folder, target):
os.chdir(path)
sys.path.insert(0, path) # NOTE: I think I'm not using this correctly...
# The folder and target aren't working to create parent package references, so using as stopgap.
# The above is probably polutling import logic and will cause unforseen import issues.
spec = importlib.util.spec_from_file_location(folder, target)
spec = importlib.util.spec_from_file_location(folder, target, submodule_search_locations=path)
module = importlib.util.module_from_spec(spec)
sys.modules[folder] = module
spec.loader.exec_module(module)
return module