Spaces:
Sleeping
Sleeping
from abc import abstractmethod | |
from typing import Any | |
from .env_element import EnvElement, IEnvElement, EnvElementInfo | |
from ..env.base_env import BaseEnv | |
class IEnvElementRunner(IEnvElement): | |
def get(self, engine: BaseEnv) -> Any: | |
raise NotImplementedError | |
def reset(self, *args, **kwargs) -> None: | |
raise NotImplementedError | |
class EnvElementRunner(IEnvElementRunner): | |
def __init__(self, *args, **kwargs) -> None: | |
self._init(*args, **kwargs) | |
self._check() | |
def _init(self, *args, **kwargs) -> None: | |
# set self._core and other state variable | |
raise NotImplementedError | |
def _check(self) -> None: | |
flag = [hasattr(self, '_core'), isinstance(self._core, EnvElement)] | |
assert all(flag), flag | |
def __repr__(self) -> str: | |
return repr(self._core) | |
def info(self) -> 'EnvElementInfo': | |
return self._core.info | |