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) -> DataJobConfigenabled_jobs
enabled_jobs(jobs: Sequence[str]) -> dict[str, bool]The on/off switch of each named operation; a missing row raises.
portfolio
portfolio() -> PortfolioConfigrounds
rounds() -> RoundsConfig | NoneStrategy 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() -> RoundsPromotionThe 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.