Skip to main content

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.


`un​