/
a1ex_ma
/
ds2
Обзор
Документация
Войти
/
a1ex_ma
/
ds2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/config/validator.py
29 строк
1 KB
A1eksMa
Alpha release 0.1.0a1: core framework code and design docs
06 июл 2026, 21:30
06 июл 2026, 21:30
c2e7adb
Код
Авторство
О чём код?
from __future__ import annotations from src.config.models import LabelConfig, SourceConfig from src.domain.errors import ValidationError from src.domain.result import Err, Ok def validate_label(cfg: LabelConfig) -> Ok[LabelConfig] | Err[ValidationError]: if not (0.0 <= cfg.p <= 1.0): return Err(ValidationError(field="p", message=f"must be between 0.0 and 1.0, got {cfg.p}")) return Ok(cfg) def validate_source(cfg: SourceConfig) -> Ok[SourceConfig] | Err[ValidationError]: if not (0.0 <= cfg.p <= 1.0): return Err(ValidationError(field="p", message=f"must be between 0.0 and 1.0, got {cfg.p}")) if cfg.key_label not in cfg.labels: return Err(ValidationError( field="key_label", message=f"'{cfg.key_label}' not found in labels", )) for name, label in cfg.labels.items(): result = validate_label(label) if isinstance(result, Err): return Err(ValidationError( field=f"labels.{name}.p", message=result.error.message, )) return Ok(cfg)