Spaces:
Sleeping
Sleeping
| """ | |
| DataClean OpenEnv Client | |
| Simple HTTP client — no openenv-core dependency needed. | |
| """ | |
| import json, requests | |
| from typing import Any, Dict, Optional | |
| class DataCleanEnvClient: | |
| def __init__(self, base_url: str = "http://localhost:7860", session_id: str = "default"): | |
| self.base_url = base_url.rstrip("/") | |
| self.session_id = session_id | |
| def reset(self, task_id: str = "task1", seed: int = 42) -> Dict[str, Any]: | |
| r = requests.post(f"{self.base_url}/reset", | |
| json={"task_id": task_id, "seed": seed, "session_id": self.session_id}) | |
| r.raise_for_status() | |
| return r.json() | |
| def step(self, action: Dict[str, Any]) -> Dict[str, Any]: | |
| r = requests.post(f"{self.base_url}/step?session_id={self.session_id}", json=action) | |
| r.raise_for_status() | |
| return r.json() | |
| def state(self) -> Dict[str, Any]: | |
| return requests.get(f"{self.base_url}/state?session_id={self.session_id}").json() | |
| def tasks(self) -> Dict[str, Any]: | |
| return requests.get(f"{self.base_url}/tasks").json() | |
| def grader(self) -> Dict[str, Any]: | |
| return requests.get(f"{self.base_url}/grader?session_id={self.session_id}").json() | |
| def baseline(self) -> Dict[str, Any]: | |
| return requests.get(f"{self.base_url}/baseline", timeout=300).json() | |
| def health(self) -> Dict[str, Any]: | |
| return requests.get(f"{self.base_url}/health").json() | |
| if __name__ == "__main__": | |
| env = DataCleanEnvClient() | |
| print("Health:", env.health()) | |
| obs = env.reset("task1", seed=42) | |
| print("Tables:", list(obs["column_dtypes"].keys())) | |
| print("Nulls:", obs["null_counts"]) | |
| print("Schema errors:", obs["schema_errors"]) |