maple.utils.config

Configuration management for MAPLE.

This module provides a hierarchical configuration system for MAPLE with support for YAML files, environment variable overrides, and programmatic access. The configuration covers all aspects of MAPLE operation including logging, container settings, policy/environment defaults, daemon settings, and evaluation parameters.

Configuration sources (in order of precedence): 1. Environment variables (MAPLE_* prefix) 2. YAML configuration file (~/.maple/config.yaml) 3. Default values defined in dataclasses

Key features: - Hierarchical configuration with nested sections - Type-safe dataclass-based configuration - YAML file persistence - Environment variable overrides - Global singleton instance - Convenience property aliases

Configuration sections: - logging: Log level, file output, verbosity - containers: Docker container limits and timeouts - policy: Default device and attention implementation - env: Environment-specific defaults - daemon: Server host and port - run: Single episode execution settings - eval: Batch evaluation settings

Classes

Config(logging, containers, policy, env, ...)

Root configuration container for MAPLE.

ContainerConfig([memory_limit, shm_size, ...])

Docker container configuration section.

DaemonConfig([host, port])

Daemon server configuration section.

EnvConfig(default_device, default_num_envs, ...)

Environment backend configuration section.

EvalConfig([max_steps, timeout, save_video, ...])

Batch evaluation configuration section.

LoggingConfig([level, file, verbose])

Logging configuration section.

PolicyConfig(default_device, model_kwargs, ...)

Policy backend configuration section.

RunConfig([max_steps, timeout, save_video, ...])

Single episode run configuration section.

Functions

get_config()

Get the global configuration instance.

init_config_file()

Create default configuration file if it doesn't exist.

load_config([config_path])

Load configuration from file and environment variables.