Skip to content

betting_combat.store.configs

Live reads of configs.betting_combat — typed, validated, fail-closed.

Rows are read with this repository’s own queries (the behaviour of nc-data’s ConfigsRepo with fallback RAISE, which this replaced): an unreachable config store stops the step (ConfigUnavailableError); a row’s NULL columns are left out so the model’s defaults apply; a missing row or a value outside its limits is a ConfigError: nothing trades or lands on a guessed number.

Classes

ConfigError

Bases: RuntimeError

A required config row is missing or malformed — automation fails closed.

ConfigStore

data_job

data_job(job: str) -> DataJobConfig

enabled_jobs

enabled_jobs(jobs: Sequence[str]) -> dict[str, bool]

The on/off switch of each named operation; a missing row raises.

portfolio

portfolio() -> PortfolioConfig

rounds

rounds() -> RoundsConfig | None

Strategy 4’s row, or None when the database has none (the strategy is then off; sql/betting_combat_configs.sql seeds it off). A malformed row still raises.

rounds_promotion

rounds_promotion() -> RoundsPromotion

The weekly refit’s promotion rule (the rounds row; without one: never promote by itself).

ConfigUnavailableError

Bases: RuntimeError

The config store could not answer a query required by automation.