Spaces:
Sleeping
Sleeping
| """DataClean Environment Client.""" | |
| from openenv.core.env_client import EnvClient | |
| from openenv.core.client_types import StepResult | |
| try: | |
| from .models import DataCleanAction, DataCleanObservation, DataCleanState | |
| except ImportError: | |
| from models import DataCleanAction, DataCleanObservation, DataCleanState | |
| class DataCleanEnv(EnvClient[DataCleanAction, DataCleanObservation, DataCleanState]): | |
| """Client for interacting with a DataClean environment server. | |
| Example: | |
| >>> with DataCleanEnv(base_url="http://localhost:8000").sync() as env: | |
| ... result = env.reset(task_id="customer_contacts") | |
| ... print(result.observation.data_preview) | |
| ... result = env.step(DataCleanAction(command='inspect("email")')) | |
| ... result = env.step(DataCleanAction(command='fix(3, "email", "test@example.com")')) | |
| ... result = env.step(DataCleanAction(command='submit()')) | |
| ... print(f"Score: {result.observation.current_score}") | |
| """ | |
| def _step_payload(self, action: DataCleanAction) -> dict: | |
| return {"action": action.model_dump()} | |
| def _parse_result(self, payload: dict) -> StepResult[DataCleanObservation]: | |
| obs = DataCleanObservation(**payload.get("observation", payload)) | |
| return StepResult( | |
| observation=obs, | |
| reward=obs.reward, | |
| done=obs.done, | |
| ) | |
| def _parse_state(self, payload: dict) -> DataCleanState: | |
| return DataCleanState(**payload) | |