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
|
Any
|
Default parameter values passed through to the component constructor. |
{}
|
Returns:
| Type | Description |
|---|---|
Callable[[type[T]], type[T]] | type[T]
|
The decorated class (with |
Examples
Basic usage:
@component ... class MyComponent(BaseComponent): ... def init(self, model, param1=1, param2=2): ... super().init(model) ... self.param1 = param1 ... self.param2 = param2
With default parameters:
@component(param1=10, param2=20) ... class MyComponent(BaseComponent): ... def init(self, model, param1=1, param2=2): ... super().init(model) ... self.param1 = param1 ... self.param2 = param2
Using the factory:
Create with default parameters
MyComponent.create(model)
Create with custom parameters
MyComponent.create(model, param1=100, param2=200)
laser.measles.components.utils.create_component(component_class, params=None)
Helper function to create a component instance with parameters.
This function creates a callable object that will instantiate the component with the given parameters when called by the model.
Parameters
component_class : Type[BaseComponent]
The component class to instantiate
params : BaseModel, optional
Parameter object to pass to the component constructor as params=....
Returns
Callable[[Any], BaseComponent]
A single-argument factory: when called by the model with the model
instance, it returns component_class(model, params=params).
Example:
1 2 3 4 5 6 7 8 | |