Refactor PluginService to use type hints for
plugins
This commit is contained in:
parent
d3599eb15b
commit
5bbb343681
1 changed files with 4 additions and 7 deletions
|
|
@ -1,9 +1,10 @@
|
||||||
import importlib
|
import importlib
|
||||||
import inspect
|
import inspect
|
||||||
import os
|
import os
|
||||||
|
from typing import TYPE_CHECKING, Union
|
||||||
|
|
||||||
from langflow.services.base import Service
|
from langflow.services.base import Service
|
||||||
from langflow.services.plugins.base import BasePlugin
|
from langflow.services.plugins.base import BasePlugin
|
||||||
from typing import TYPE_CHECKING, Union
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from langflow.services.settings.service import SettingsService
|
from langflow.services.settings.service import SettingsService
|
||||||
|
|
@ -13,7 +14,7 @@ class PluginService(Service):
|
||||||
name = "plugin_service"
|
name = "plugin_service"
|
||||||
|
|
||||||
def __init__(self, settings_service: "SettingsService"):
|
def __init__(self, settings_service: "SettingsService"):
|
||||||
self.plugins = {}
|
self.plugins: dict[str, BasePlugin] = {}
|
||||||
plugin_dir = settings_service.settings.PLUGIN_DIR
|
plugin_dir = settings_service.settings.PLUGIN_DIR
|
||||||
self.plugin_dir = plugin_dir or os.path.dirname(__file__)
|
self.plugin_dir = plugin_dir or os.path.dirname(__file__)
|
||||||
|
|
||||||
|
|
@ -26,11 +27,7 @@ class PluginService(Service):
|
||||||
mod = importlib.import_module(module_path)
|
mod = importlib.import_module(module_path)
|
||||||
for attr_name in dir(mod):
|
for attr_name in dir(mod):
|
||||||
attr = getattr(mod, attr_name)
|
attr = getattr(mod, attr_name)
|
||||||
if (
|
if inspect.isclass(attr) and issubclass(attr, BasePlugin) and attr is not BasePlugin:
|
||||||
inspect.isclass(attr)
|
|
||||||
and issubclass(attr, BasePlugin)
|
|
||||||
and attr is not BasePlugin
|
|
||||||
):
|
|
||||||
self.register_plugin(plugin_name, attr())
|
self.register_plugin(plugin_name, attr())
|
||||||
|
|
||||||
def register_plugin(self, plugin_name, plugin_instance):
|
def register_plugin(self, plugin_name, plugin_instance):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue