"""Pydantic models for Quantitative Analysis.""" from pydantic import BaseModel class TestModel(BaseModel): """Base model for QA tests.""" statistic: float p_value: float class NormalityModel(BaseModel): """Normality model.""" kurtosis: TestModel skewness: TestModel jarque_bera: TestModel shapiro_wilk: TestModel kolmogorov_smirnov: TestModel class ADFTestModel(TestModel): """Augmented Dickey-Fuller test model.""" nlags: int nobs: int icbest: float class KPSSTestModel(TestModel): """Kwiatkowski–Phillips–Schmidt–Shin test model.""" nlags: int class UnitRootModel(BaseModel): """Unit root model.""" adf: ADFTestModel kpss: KPSSTestModel class OmegaModel(BaseModel): """Omega model.""" threshold: float omega: float class SummaryModel(BaseModel): """Summary model.""" count: int mean: float std: float var: float min: float max: float p_25: float p_50: float p_75: float class CAPMModel(BaseModel): """CAPM model.""" market_risk: float systematic_risk: float idiosyncratic_risk: float