Skip to content

Config

Frozen Pydantic configuration model for the Basanos engine.

tinycta.config

Configuration model for the Basanos engine.

Config

Bases: BaseModel

Configuration for correlation-aware position optimization (Basanos engine).

Source code in src/tinycta/config.py
class Config(BaseModel):
    """Configuration for correlation-aware position optimization (Basanos engine)."""

    vola: int = Field(..., gt=0)
    corr: int = Field(..., gt=0)
    clip: float = Field(..., gt=0.0)
    shrink: float = Field(..., ge=0.0, le=1.0)

    model_config = {"frozen": True, "extra": "forbid"}

    @field_validator("corr")
    @classmethod  # pragma: no mutate - pydantic field_validator behaves identically without classmethod
    def corr_greater_than_vola(cls, v: int, info: ValidationInfo) -> int:
        """Enforce corr >= vola for numerical stability."""
        vola = info.data.get("vola") if hasattr(info, "data") else None
        if vola is not None and v < vola:
            msg = f"corr ({v}) must be >= vola ({vola}) for numerical stability"
            raise ValueError(msg)
        return v

corr_greater_than_vola(v, info) classmethod

Enforce corr >= vola for numerical stability.

Source code in src/tinycta/config.py
@field_validator("corr")
@classmethod  # pragma: no mutate - pydantic field_validator behaves identically without classmethod
def corr_greater_than_vola(cls, v: int, info: ValidationInfo) -> int:
    """Enforce corr >= vola for numerical stability."""
    vola = info.data.get("vola") if hasattr(info, "data") else None
    if vola is not None and v < vola:
        msg = f"corr ({v}) must be >= vola ({vola}) for numerical stability"
        raise ValueError(msg)
    return v