larvaworld.lib.param.nested_parameter_group

Classes

NestedConf

Base class for managing nested configuration parameters.

Functions

class_generator(A0[, mode])

Generate parameterized class with distribution and shortcut support.

expand_kws_shortcuts(→ Dict[str, Any])

Expand keyword argument shortcuts to full parameter names.

class_defaults(→ larvaworld.lib.util.AttrDict)

Generate default configuration for class with exclusions/inclusions.

class_objs(→ larvaworld.lib.util.AttrDict)

Get parameter objects from class with optional exclusions.

Module Contents

class larvaworld.lib.param.nested_parameter_group.NestedConf(**kwargs: Any)

Bases: param.Parameterized

Base 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