Plugins & Registry
Extend Whoosh-NG through the plugin system and registries.
Plugin System
BasePlugin
class whoosh.plugins.base.BasePlugin
All plugins inherit from this class.
Attributes
name (str): Plugin name.version (str): Plugin version.dependencies (list[str]): Required plugins.
Methods
setup()
def setup(self, registry) -> None:
"""Called when the plugin is enabled."""
teardown()
def teardown(self, registry) -> None:
"""Called when the plugin is disabled."""
middleware()
def middleware(self) -> list[Middleware]:
"""Return middleware instances."""
PluginManager
class whoosh.plugins.manager.PluginManager
Manages plugin lifecycle.
Methods
load_plugins()
PluginManager.load_plugins()
Auto-discover plugins from entry points.
register()
PluginManager.register(name: str, plugin: BasePlugin)
Register a plugin manually.
enable()
PluginManager.enable(name: str)
Enable a registered plugin.
disable()
PluginManager.disable(name: str)
Disable a plugin.
get()
plugin = PluginManager.get(name: str)
Get a plugin instance.
list_plugins()
plugins = PluginManager.list_plugins()
List all registered plugins.
get_middleware_chain()
chain = PluginManager.get_middleware_chain()
Get the combined middleware chain from all plugins.
Registry System
Registries provide centralized object management.
Registry Base
class whoosh.registry.base.Registry
Generic registry.
Methods
register()
Registry.register(
key: str,
value: Any,
owner: str = None
)
Register a value.