laser.measles.components.utils
laser.measles.components.utils
Component utilities for the laser-measles package.
This module provides utilities for creating and managing components in the laser-measles package. The main feature is a decorator that makes it easier to create components with parameters.
laser.measles.components.utils.component(cls=None, **default_params)
Decorator that adds a create factory to a component class.
Use this at set parameters time to bake default parameter values into
a component class. The decorated class gains a create(model, **overrides)
static method that merges defaults with caller-supplied overrides.
Can be applied with or without arguments:
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cls
|
type[T] | None
|
The component class to decorate. When |
None
|
**default_params
|
Default parameter values passed through to the component constructor. |
{}
|
Returns:
| Type | Description |
|---|---|
|
The decorated class (with |
Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
laser.measles.components.utils.create_component(component_class, params=None)
Wrap a component class and its parameters into a single callable.
Use this at set parameters time when a component requires a custom
Pydantic parameter object. The returned factory is callable with the
same (model, verbose) signature that
BaseLaserModel.components
expects, so it can be placed directly in the component list.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
component_class
|
type[T]
|
The component class to instantiate. |
required |
params
|
type[B] | None
|
A Pydantic parameter object (or |
None
|
Returns:
| Type | Description |
|---|---|
Callable[[Any, Any], T]
|
A callable that creates the component when invoked by the model. |
Example:
1 2 3 4 5 6 7 8 | |