unilab.base.registry

Functions

apply_cfg_overrides(target_obj, overrides)

Apply a (possibly nested) dict of overrides to target_obj in place.

contains(name)

Check if an environment configuration is registered.

ensure_registries([packages, ...])

Import env registry bootstrap modules.

env(name, sim_backend)

Decorator to register an environment class with a name and simulation backend.

envcfg(name)

Decorator to register an environment configuration class with a name.

find_available_sim_backend(env_name)

Find the explicit default simulation backend for an environment.

list_registered_envs()

List all registered environments with their available backends.

make(name[, sim_backend, env_cfg_override, ...])

Create an environment instance by name.

register_env(name, env_cls, sim_backend)

Register an environment class with a name and simulation backend.

register_env_config(name, env_cfg_cls)

Register an environment configuration class with a name.

Classes

EnvMeta

EnvMeta(env_cfg_cls: Type[unilab.base.base.EnvCfg], env_cls_dict: Dict[str, Type[unilab.base.base.ABEnv]] = <factory>)

class unilab.base.registry.EnvMeta[source]

Bases: object

EnvMeta(env_cfg_cls: Type[unilab.base.base.EnvCfg], env_cls_dict: Dict[str, Type[unilab.base.base.ABEnv]] = <factory>)

Parameters:
env_cfg_cls: Type[EnvCfg]
env_cls_dict: Dict[str, Type[ABEnv]]
available_sim_backend()[source]

Return the explicit default simulation backend for this environment.

Return type:

Optional[str]

support_sim_backend(sim_backend)[source]

Check if the environment supports a specific simulation backend.

Parameters:

sim_backend (str)

Return type:

bool

__init__(env_cfg_cls, env_cls_dict=<factory>)
Parameters:
unilab.base.registry.contains(name)[source]

Check if an environment configuration is registered.

Parameters:

name (str)

Return type:

bool

unilab.base.registry.register_env_config(name, env_cfg_cls)[source]

Register an environment configuration class with a name.

Parameters:
unilab.base.registry.envcfg(name)[source]

Decorator to register an environment configuration class with a name.

Usage:

@register_env_config_decorator(“my-env”) @dataclass class MyEnvCfg(EnvCfg):

Parameters:

name (str)

Return type:

Callable[[Type[TypeVar(TEnvCfg, bound= EnvCfg)]], Type[TypeVar(TEnvCfg, bound= EnvCfg)]]

unilab.base.registry.register_env(name, env_cls, sim_backend)[source]

Register an environment class with a name and simulation backend.

Parameters:
unilab.base.registry.env(name, sim_backend)[source]

Decorator to register an environment class with a name and simulation backend.

Usage:

@register_env_decorator(“my-env”, “np”) class MyEnv(ABEnv):

Parameters:
  • name (str)

  • sim_backend (str)

Return type:

Callable[[Type[ABEnv]], Type[ABEnv]]

unilab.base.registry.find_available_sim_backend(env_name)[source]

Find the explicit default simulation backend for an environment.

Parameters:

env_name (str)

Return type:

str

unilab.base.registry.apply_cfg_overrides(target_obj, overrides)[source]

Apply a (possibly nested) dict of overrides to target_obj in place.

Behavior:
  • For each key, value in overrides, target_obj.key must exist (otherwise ValueError).

  • If value is a dict and target_obj.key is already a dataclass instance, recurse into it (deep merge — preserves fields not present in value). This is what lets Hydra-style partial overrides like env.scene.terrain.generator.num_rows=4 keep sub_terrains and other defaults intact.

  • If value is a dict and target_obj.key is currently None, instantiate the field’s annotated dataclass type from the dict (full-construction path).

  • Otherwise setattr the value directly (scalar / list / non-dataclass).

Parameters:
Return type:

None

unilab.base.registry.make(name, sim_backend=None, env_cfg_override=None, num_envs=1)[source]

Create an environment instance by name.

Parameters:
  • name (str) – Environment name

  • sim_backend (Optional[str]) – Simulation backend (“mujoco” or “motrix”). If None, uses the explicit default backend order: “mujoco”, then “motrix”.

  • num_envs (int) – Number of environments to create

  • env_cfg_override (Optional[Dict[str, Any]])

Return type:

ABEnv

Returns:

Environment instance

unilab.base.registry.list_registered_envs()[source]

List all registered environments with their available backends.

Return type:

Dict[str, Dict[str, Any]]

unilab.base.registry.ensure_registries(packages=None, *, optional_packages=None, fail_on_error=True)[source]

Import env registry bootstrap modules.

Parameters:
Return type:

None