openenv-data-clean / models.py
Tarkeshwar
Restructure repo to match OpenEnv standard layout
7c6fd7d
from typing import Any, Dict, List, Optional
from pydantic import Field
from openenv.core.env_server.types import Action, Observation, State
class DataCleanAction(Action):
"""A string command for data cleaning operations.
Supported commands:
inspect("column_name") - View column statistics and issue hints
fix(row, "column", "new_value") - Correct a cell value
delete(row) - Remove a duplicate/invalid row
submit() - Finalize and get scored
"""
command: str = Field(
..., min_length=1, description="Command string to execute"
)
class DataCleanObservation(Observation):
"""Observation returned after each step."""
task_id: str = Field(default="")
task_description: str = Field(default="")
difficulty: str = Field(default="easy")
data_preview: str = Field(default="", description="Formatted text table of current data")
column_info: str = Field(default="", description="Column names, types, and stats")
feedback: str = Field(default="", description="Result of last action")
actions_remaining: int = Field(default=0)
issues_found: int = Field(default=0)
issues_fixed: int = Field(default=0)
total_issues: int = Field(default=0)
current_score: float = Field(default=0.0)
action_history: List[str] = Field(default_factory=list)
class DataCleanState(State):
"""Full environment state."""
task_id: str = Field(default="")
difficulty: str = Field(default="easy")
total_issues: int = Field(default=0)
fixed_issues: int = Field(default=0)
damaged_cells: int = Field(default=0)
max_steps: int = Field(default=15)
score: float = Field(default=0.0)