Sepsis-OpenEnv / openenv_compat.py
BAIBHAV1234's picture
Upload folder using huggingface_hub
ef41468 verified
from __future__ import annotations
from dataclasses import dataclass, field
from typing import Any, Generic, Optional, TypeVar
from pydantic import BaseModel
OPENENV_AVAILABLE = False
try:
from openenv.core.client_types import StepResult as OpenEnvStepResult
from openenv.core.env_client import EnvClient as OpenEnvEnvClient
from openenv.core.env_server import create_app as openenv_create_app
from openenv.core.env_server.interfaces import Environment as OpenEnvEnvironment
from openenv.core.env_server.types import Action as OpenEnvAction
from openenv.core.env_server.types import Observation as OpenEnvObservation
from openenv.core.env_server.types import State as OpenEnvState
Action = OpenEnvAction
Observation = OpenEnvObservation
State = OpenEnvState
Environment = OpenEnvEnvironment
EnvClient = OpenEnvEnvClient
create_app = openenv_create_app
OPENENV_AVAILABLE = True
except Exception:
create_app = None
class Action(BaseModel):
pass
class Observation(BaseModel):
pass
class State(BaseModel):
episode_id: str
step_count: int = 0
class Environment:
def reset(self):
raise NotImplementedError
def step(self, action):
raise NotImplementedError
@property
def state(self):
raise NotImplementedError
TObservation = TypeVar("TObservation")
class EnvClient(Generic[TObservation]):
def __init__(self, base_url: str | None = None, **_: Any):
self.base_url = base_url
def close(self) -> None:
return None
def __enter__(self):
return self
def __exit__(self, exc_type, exc, tb) -> None:
self.close()
TObservation = TypeVar("TObservation")
@dataclass
class StepResult(Generic[TObservation]):
observation: TObservation
reward: Optional[float] = None
done: bool = False
info: dict[str, Any] = field(default_factory=dict)
__all__ = [
"Action",
"Observation",
"State",
"Environment",
"EnvClient",
"StepResult",
"OPENENV_AVAILABLE",
"create_app",
]