Skip to content

Plugin Manager

genie_tooling.core.plugin_manager

PluginManager for discovering, loading, and managing plugins.

Classes

PluginManager

PluginManager(plugin_dev_dirs: Optional[List[str]] = None)

Manages discovery, loading, and access to plugins. Implements Hybrid: Entry Points + Configured Dev Directory discovery.

Source code in src/genie_tooling/core/plugin_manager.py
def __init__(self, plugin_dev_dirs: Optional[List[str]] = None):
    self.plugin_dev_dirs = [Path(p).resolve() for p in plugin_dev_dirs] if plugin_dev_dirs else []
    self._plugin_instances: Dict[str, Plugin] = {}
    self._discovered_plugin_classes: Dict[str, Type[Plugin]] = {}
    self._plugin_source_map: Dict[str, str] = {}
    logger.debug(f"PluginManager initialized. Dev dirs: {self.plugin_dev_dirs}")