""" Pydantic schemas for Data Recipe (DataDesigner) API. """ from __future__ import annotations from typing import Any from pydantic import BaseModel, Field class RecipePayload(BaseModel): recipe: dict[str, Any] = Field(default_factory=dict) run: dict[str, Any] | None = None ui: dict[str, Any] | None = None class PreviewResponse(BaseModel): dataset: list[dict[str, Any]] = Field(default_factory=list) processor_artifacts: dict[str, Any] | None = None analysis: dict[str, Any] | None = None class ValidateError(BaseModel): message: str path: str | None = None code: str | None = None class ValidateResponse(BaseModel): valid: bool errors: list[ValidateError] = Field(default_factory=list) raw_detail: str | None = None class JobCreateResponse(BaseModel): job_id: str class SeedInspectRequest(BaseModel): dataset_name: str = Field(min_length=1) hf_token: str | None = None subset: str | None = None split: str | None = "train" preview_size: int = Field(default=10, ge=1, le=50) class SeedInspectUploadRequest(BaseModel): filename: str = Field(min_length=1) content_base64: str = Field(min_length=1) preview_size: int = Field(default=10, ge=1, le=50) class SeedInspectResponse(BaseModel): dataset_name: str resolved_path: str columns: list[str] = Field(default_factory=list) preview_rows: list[dict[str, Any]] = Field(default_factory=list) split: str | None = None subset: str | None = None