Source code for jaxarc.configs.visualization_config

from __future__ import annotations

import equinox as eqx
from omegaconf import DictConfig

from .validation import check_hashable


[docs] class VisualizationConfig(eqx.Module): """All visualization and rendering settings. This config contains everything related to visual output, rendering, and visualization behavior. No logging or storage settings here. """ # Core settings enabled: bool = True def __init__(self, **kwargs): # Set all fields self.enabled = kwargs.get("enabled", True) self.episode_summaries = kwargs.get("episode_summaries", True) self.step_visualizations = kwargs.get("step_visualizations", True) # Episode visualization episode_summaries: bool = True step_visualizations: bool = True
[docs] def validate(self) -> tuple[str, ...]: """Validate visualization configuration and return tuple of errors.""" errors: list[str] = [] # Minimal validation if not isinstance(self.enabled, bool): errors.append("enabled must be a boolean for VisualizationConfig") if not isinstance(self.episode_summaries, bool): errors.append("episode_summaries must be a boolean") if not isinstance(self.step_visualizations, bool): errors.append("step_visualizations must be a boolean") return tuple(errors)
def __check_init__(self): check_hashable(self, "VisualizationConfig")
[docs] @classmethod def from_hydra(cls, cfg: DictConfig) -> VisualizationConfig: """Create visualization config from Hydra DictConfig.""" return cls( enabled=cfg.get("enabled", True), episode_summaries=cfg.get("episode_summaries", True), step_visualizations=cfg.get("step_visualizations", True), )