larvaworld.lib.param.nested_parameter_group
Classes
Base class for managing nested configuration parameters. |
Functions
|
Generate parameterized class with distribution and shortcut support. |
|
Expand keyword argument shortcuts to full parameter names. |
|
Generate default configuration for class with exclusions/inclusions. |
|
Get parameter objects from class with optional exclusions. |
Module Contents
- class larvaworld.lib.param.nested_parameter_group.NestedConf(**kwargs: Any)
Bases:
param.ParameterizedBase class for managing nested configuration parameters.
Extends param.Parameterized with automatic nested object initialization from dict configs, supporting ClassAttr and ClassDict automatic instantiation. Provides methods for config export, validation, and parameter introspection.
- Attributes:
nestedConf: Nested configuration dict (property) param_keys: List of parameter keys excluding ‘name’ (property)
- Args:
- **kwargs: Configuration keyword arguments. ClassAttr and ClassDict
parameters are auto-instantiated from dict configs.
- Example:
>>> class MyConfig(NestedConf): ... value = param.Number(default=1.0) ... nested = ClassAttr(class_=SomeClass) >>> conf = MyConfig(value=2.0, nested={'param': 10}) >>> conf.nested # SomeClass instance (auto-instantiated)
- property nestedConf: larvaworld.lib.util.AttrDict
Generates a nested configuration dictionary.
- Returns:
A nested configuration dictionary.
- entry(id: str | None = None) Dict[str, Any]
Creates an entry in the configuration.
- Parameters:
id – The identifier for the entry.
- Returns:
A dictionary containing the configuration entry.
- property param_keys: larvaworld.lib.util.SuperList
Retrieves a list of parameter keys.
- Returns:
A list of parameter keys excluding ‘name’.
- params_missing(d: Dict[str, Any]) larvaworld.lib.util.SuperList
Checks for missing parameters in the configuration.
- Parameters:
d – The configuration dictionary to compare against.
- Returns:
A list of missing parameter keys.
- larvaworld.lib.param.nested_parameter_group.class_generator(A0: Any, mode: str = 'Unit')
Generate parameterized class with distribution and shortcut support.
Factory function creating NestedConf subclass with automatic distribution initialization, keyword shortcuts, and entry generation.
- Args:
A0: Base class to extend mode: Generation mode (default: ‘Unit’)
- Returns:
Generated class with enhanced initialization
- Example:
>>> MyClass = class_generator(BaseClass, mode='Group')
- larvaworld.lib.param.nested_parameter_group.expand_kws_shortcuts(kwargs: Dict[str, Any]) Dict[str, Any]
Expand keyword argument shortcuts to full parameter names.
Converts abbreviated configuration keys to full names: - ‘life’ → ‘life_history’ (age, epochs) - ‘o’ → ‘odor’ (id, intensity, spread) - ‘sub’ → ‘substrate’ (quality, type)
- Args:
kwargs: Configuration dict with potential shortcuts
- Returns:
Expanded configuration dict with full parameter names
- Example:
>>> kws = {'life': [0, 10], 'o': ['odorA', 0.5, 2.0]} >>> expand_kws_shortcuts(kws) >>> # {'life_history': {'age': 0, 'epochs': 10}, 'odor': {...}}
- larvaworld.lib.param.nested_parameter_group.class_defaults(A: Any, excluded: Sequence[Any] = [], included: Dict[str, Any] = {}, **kwargs: Any) larvaworld.lib.util.AttrDict
Generate default configuration for class with exclusions/inclusions.
Creates nested config dict from class, optionally excluding parameters from other classes and including/overriding specific values.
- Args:
A: Target class to generate defaults for excluded: Classes/keys whose parameters to exclude (default: []) included: Dict of parameters to include/override (default: {}) **kwargs: Additional parameters to update in existing keys
- Returns:
AttrDict with filtered and merged default configuration
- Example:
>>> defaults = class_defaults(MyClass, excluded=[BaseClass], value=10)
- larvaworld.lib.param.nested_parameter_group.class_objs(A: Any, excluded: Sequence[Any] = []) larvaworld.lib.util.AttrDict
Get parameter objects from class with optional exclusions.
Retrieves param objects dict from class, optionally filtering out parameters from excluded classes or by explicit key names.
- Args:
A: Target class to get parameter objects from excluded: Classes or parameter keys to exclude (default: [])
- Returns:
AttrDict of parameter name → parameter object mappings
- Example:
>>> objs = class_objs(MyClass, excluded=[BaseClass, 'internal_param']) >>> objs.keys() # Only MyClass-specific params