| from __future__ import annotations | |
| from typing import Any, Dict, List, Optional, Union | |
| from pydantic import BaseModel | |
| class Action(BaseModel): | |
| type: str | |
| column: Optional[str] = None | |
| row_id: Optional[int] = None | |
| strategy: Optional[str] = None | |
| value: Optional[Union[str, float, int]] = None | |
| mapping: Optional[Dict[str, str]] = None | |
| target_type: Optional[str] = None | |
| lower: Optional[float] = None | |
| upper: Optional[float] = None | |
| class TablePreview(BaseModel): | |
| columns: List[str] | |
| rows: List[Dict[str, Any]] | |
| shape: List[int] | |
| class Observation(BaseModel): | |
| task_id: str | |
| task_description: str | |
| table_preview: TablePreview | |
| schema_info: Dict[str, str] | |
| valid_actions: List[str] | |
| step: int | |
| max_steps: int | |
| cleaning_log: List[str] | |
| issues_detected: List[str] | |
| class StepResult(BaseModel): | |
| observation: Observation | |
| reward: float | |
| done: bool | |
| info: Dict[str, Any] | |