"""Pydantic models for SAS file metadata.""" from pydantic import BaseModel class ColumnMetadata(BaseModel): """Metadata for a single SAS dataset column. Never contains raw data values.""" name: str label: str | None = None dtype: str # pandas dtype string, e.g. "float64", "object" sas_format: str | None = None sas_informat: str | None = None length: int = 0 position: int # 0-based column ordinal class DatasetMetadata(BaseModel): """Metadata for an entire SAS dataset. Row count is included but no row data.""" filename: str dataset_label: str | None = None num_rows: int num_columns: int columns: list[ColumnMetadata] encoding: str | None = None created_at: str | None = None modified_at: str | None = None