Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| from uuid import uuid4 | |
| from openenv.core.env_server.interfaces import Environment | |
| from openenv.core.env_server.types import State | |
| from ev_grid_oracle.city_graph import build_city_graph | |
| from ev_grid_oracle.env import EVGridCore | |
| from ev_grid_oracle.models import EVGridAction, EVGridObservation | |
| class EVGridEnvironment(Environment): | |
| SUPPORTS_CONCURRENT_SESSIONS: bool = False | |
| def __init__(self): | |
| self._state = State(episode_id=str(uuid4()), step_count=0) | |
| self._core = EVGridCore(city_graph=build_city_graph()) | |
| def reset(self, seed=None, episode_id=None, **kwargs) -> EVGridObservation: # type: ignore[override] | |
| self._state = State(episode_id=episode_id or str(uuid4()), step_count=0) | |
| obs = self._core.reset(seed=seed) | |
| return obs | |
| def step(self, action: EVGridAction) -> EVGridObservation: # type: ignore[override] | |
| self._state.step_count += 1 | |
| obs = self._core.step(action) | |
| return obs | |
| def state(self) -> State: | |
| return self._state | |