forked from enviPath/enviPy
[Feature] PEPPER in enviPath (#332)
Co-authored-by: Tim Lorsbach <tim@lorsba.ch> Reviewed-on: enviPath/enviPy#332
This commit is contained in:
@ -45,13 +45,14 @@ def discover_plugins(_cls: Type = None) -> Dict[str, Type]:
|
||||
|
||||
plugins = {}
|
||||
|
||||
# Load plugins dropped to plugin dir
|
||||
for entry_point in importlib.metadata.entry_points(group="enviPy_plugins"):
|
||||
try:
|
||||
plugin_class = entry_point.load()
|
||||
if _cls:
|
||||
if issubclass(plugin_class, _cls):
|
||||
instance = plugin_class()
|
||||
plugins[instance.name()] = instance
|
||||
plugins[instance.identifier()] = instance
|
||||
else:
|
||||
if (
|
||||
issubclass(plugin_class, Classifier)
|
||||
@ -59,9 +60,17 @@ def discover_plugins(_cls: Type = None) -> Dict[str, Type]:
|
||||
or issubclass(plugin_class, Property)
|
||||
):
|
||||
instance = plugin_class()
|
||||
plugins[instance.name()] = instance
|
||||
plugins[instance.identifier()] = plugin_class
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error loading plugin {entry_point.name}: {e}")
|
||||
|
||||
# load direct modules
|
||||
for plugin_module in s.BASE_PLUGINS:
|
||||
module_path, class_name = plugin_module.rsplit(".", 1)
|
||||
module = importlib.import_module(module_path)
|
||||
plugin_class = getattr(module, class_name)
|
||||
instance = plugin_class()
|
||||
plugins[instance.identifier()] = plugin_class
|
||||
|
||||
return plugins
|
||||
|
||||
Reference in New Issue
Block a user