Component Registries
lariv.registry
Central module for registering and retrieving decoupled plugin resources.
This module provides the BaseRegistry and its specialized subclasses for
registering Views, Schemas, UI Components, Tools, Generators, and Environments
across independent Django apps without hard dependencies.
BaseRegistry
Base registry class. Provides a generic dictionary-based registration pattern. Should be subclassed for each specific resource type (e.g., UI, View, Generator).
Source code in lariv/registry.py
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | |
all()
classmethod
Return all registered items.
Source code in lariv/registry.py
55 56 57 58 | |
get(key)
classmethod
Retrieve a registered class by its string key.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key
|
str
|
The unique identifier. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
type |
The registered class. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If no item is registered under the provided key. |
Source code in lariv/registry.py
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | |
keys()
classmethod
Return all registered keys.
Source code in lariv/registry.py
60 61 62 63 | |
register(key)
classmethod
Decorator to register a class under a specific string key.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key
|
str
|
The unique string identifier for the registered item.
Conventionally formatted as |
required |
Returns:
| Name | Type | Description |
|---|---|---|
callable |
The decorator function wrapping the targeted class. |
Source code in lariv/registry.py
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | |
EnvironmentRegistry
Bases: BaseRegistry
Registry for application-specific environment/context handlers.
Source code in lariv/registry.py
144 145 146 147 148 149 150 151 152 | |
get_for_app(app_name)
classmethod
Get environment class for a specific app.
Source code in lariv/registry.py
149 150 151 152 | |
GeneratorRegistry
Bases: BaseRegistry
Registry for data generators used to seed databases. Implements topological sorting to ensure generators run in the correct dependency order.
Source code in lariv/registry.py
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 | |
run_all()
classmethod
Run all registered data generators in their declared dependency order.
Each generator must implement a .run() method.
Source code in lariv/registry.py
99 100 101 102 103 104 105 106 107 108 109 | |
SchemaRegistry
Bases: BaseRegistry
Registry for Pydantic or Django REST Framework schemas.
Source code in lariv/registry.py
72 73 74 75 | |
ToolRegistry
Bases: BaseRegistry
Registry for LangChain or MCP tools exposed by plugins.
Source code in lariv/registry.py
84 85 86 87 | |
UIRegistry
Bases: BaseRegistry
Registry for python-based UI Components.
Source code in lariv/registry.py
78 79 80 81 | |
ViewRegistry
Bases: BaseRegistry
Registry for Django View classes.
Source code in lariv/registry.py
66 67 68 69 | |