ModuleRegistry¶
ModuleRegistry is the central registry for all loaded ModuleDescriptor plugin instances. It maps module_id → ModuleDescriptor and is used by MainWindow to discover which modules to render.
Registration¶
from knowledge_platform.modules.registry import ModuleRegistry
from knowledge_platform.modules.outline.module import OutlineModule
registry = ModuleRegistry()
registry.register(OutlineModule())
# Lookup
module = registry.get("outline")
print(module.display_name) # "Outline"
Duplicate Registration¶
Attempting to register two modules with the same module_id raises ValueError:
registry.register(OutlineModule()) # OK
registry.register(OutlineModule()) # ValueError: Module 'outline' is already registered.
Empty module_id¶
A module with an empty module_id raises ValueError on registration:
class BadModule:
module_id = ""
...
registry.register(BadModule()) # ValueError: ModuleDescriptor.module_id must be a non-empty string.
Iterating All Modules¶
Modules are returned in registration order, which is the order they appear in tabs in the main window.
Checking Registration¶
API Reference¶
knowledge_platform.modules.registry.ModuleRegistry ¶
Central registry for all loaded module descriptors.
Source code in src/knowledge_platform/modules/registry.py
Functions¶
all_modules ¶
Return all registered modules in registration order.
Returns:
| Type | Description |
|---|---|
list[ModuleDescriptor]
|
List of :class: |
get ¶
Return the module for module_id.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
module_id
|
str
|
Target identifier. |
required |
Returns:
| Type | Description |
|---|---|
ModuleDescriptor
|
The registered :class: |
Raises:
| Type | Description |
|---|---|
KeyError
|
If module_id is not registered. |
Source code in src/knowledge_platform/modules/registry.py
is_registered ¶
Return True if module_id is currently registered.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
module_id
|
str
|
Target identifier. |
required |
register ¶
Register a module.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
module
|
ModuleDescriptor
|
Plugin instance implementing :class: |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If a module with the same module_id is already registered. |