CSV_DC_ENV / models.py
printf-sourav's picture
Clean project upload
0d7c387
Raw
History Blame Contribute Delete
1.77 kB
"""
Data models for the CSV Cleaner Environment.
The CSV Cleaner environment simulates real-world data cleaning tasks
where an AI agent must clean messy CSV datasets using structured commands.
"""
from typing import Any, Dict, List, Optional
from pydantic import Field
try:
from openenv.core.env_server.types import Action, Observation
except ImportError:
from openenv.core.env_server.types import Action, Observation
class CsvCleanerAction(Action):
"""Action for the CSV Cleaner environment — a cleaning command with parameters."""
command: str = Field(
...,
description=(
"Cleaning command to execute. One of: rename_column, cast_column, "
"fill_missing, drop_missing, drop_duplicates, filter_rows, "
"strip_whitespace, replace_values"
),
)
params: Dict[str, Any] = Field(
default_factory=dict,
description="Command-specific parameters (see README for each command's params)",
)
class CsvCleanerObservation(Observation):
"""Observation from the CSV Cleaner environment — current dataset state."""
columns: List[Dict[str, Any]] = Field(
default_factory=list,
description="Column metadata: name, dtype, null_count, unique_count, sample_values",
)
row_count: int = Field(default=0, ge=0, description="Current number of rows")
duplicate_count: int = Field(default=0, ge=0, description="Number of duplicate rows")
task_description: str = Field(default="", description="Description of the cleaning objective")
last_action_result: str = Field(default="", description="Result of the last action (success/error)")
progress: float = Field(default=0.0, ge=0.0, le=1.0, description="Progress toward target (0.0-1.0)")