File size: 2,174 Bytes
ef41468 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | 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",
]
|