[Feature] Biotransformer in enviPath (#364)

Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#364
This commit is contained in:
2026-04-10 00:00:13 +12:00
parent 5029a8cda5
commit 964574c700
13 changed files with 793 additions and 56 deletions

View File

@ -51,16 +51,14 @@ def discover_plugins(_cls: Type = None) -> Dict[str, Type]:
plugin_class = entry_point.load()
if _cls:
if issubclass(plugin_class, _cls):
instance = plugin_class()
plugins[instance.identifier()] = instance
plugins[plugin_class.identifier()] = plugin_class
else:
if (
issubclass(plugin_class, Classifier)
or issubclass(plugin_class, Descriptor)
or issubclass(plugin_class, Property)
):
instance = plugin_class()
plugins[instance.identifier()] = plugin_class
plugins[plugin_class.identifier()] = plugin_class
except Exception as e:
print(f"Error loading plugin {entry_point.name}: {e}")
@ -70,7 +68,7 @@ def discover_plugins(_cls: Type = None) -> Dict[str, Type]:
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
if issubclass(plugin_class, _cls):
plugins[plugin_class.identifier()] = plugin_class
return plugins