Source code for unilab.dr.provider

from __future__ import annotations

import abc
from typing import Any

import numpy as np

from .types import (
    DomainRandomizationCapabilities,
    InitRandomizationPlan,
    IntervalRandomizationPlan,
    ResetPlan,
)


[docs] class DomainRandomizationProvider(abc.ABC):
[docs] @abc.abstractmethod def validate(self, env: Any, capabilities: DomainRandomizationCapabilities) -> None: pass
[docs] def build_init_randomization_plan(self, env: Any) -> InitRandomizationPlan | None: return None
[docs] @abc.abstractmethod def build_reset_plan(self, env: Any, env_ids: np.ndarray) -> ResetPlan: pass
[docs] @abc.abstractmethod def build_reset_observation( self, env: Any, env_ids: np.ndarray, info_updates: dict[str, Any] ) -> dict[str, np.ndarray]: pass
[docs] def build_interval_randomization_plan( self, env: Any, step_counter: int ) -> IntervalRandomizationPlan | None: return None