"""EnvHub errors for assembly_bench (Isaac Lab Arena).""" class IsaacLabArenaError(RuntimeError): """Base exception for IsaacLab Arena environment errors.""" def __init__(self, message: str = "IsaacLab Arena error"): self.message = message super().__init__(self.message) class IsaacLabArenaConfigError(IsaacLabArenaError): """Invalid observation / action configuration against the live env.""" def __init__(self, invalid: list, available: list, key_type: str = "keys"): msg = f"Invalid {key_type}: {invalid}. Available: {sorted(available)}" super().__init__(msg) self.invalid = invalid self.available = available class IsaacLabArenaCameraKeyError(IsaacLabArenaConfigError): """camera_keys do not match available camera observation terms.""" def __init__(self, invalid: list, available: list): super().__init__(invalid, available, "camera_keys") class IsaacLabArenaStateKeyError(IsaacLabArenaConfigError): """state_keys do not match available policy observation terms.""" def __init__(self, invalid: list, available: list): super().__init__(invalid, available, "state_keys")