from pydantic import BaseModel, Field import sqlite3 import pandas as pd from pathlib import Path from typing import Optional from .metadata import Metadata class Run(BaseModel): model_config = {"arbitrary_types_allowed": True} # === FETCHERS === onet_conn: Optional[sqlite3.Connection] = None onet_version: Optional[str] = None oesm_df: Optional[pd.DataFrame] = None oesm_version: Optional[str] = None epoch_df: Optional[pd.DataFrame] = None epoch_version: Optional[str] = None # === ENRICHMENTS === task_estimateability_df: Optional[pd.DataFrame] = None task_estimates_df: Optional[pd.DataFrame] = None meta: Metadata = Field(default_factory=Metadata) cache_dir: Path output_dir: Path