Pafkun333's picture
Deploy World Cup Predictor V2
bc46574 verified
Raw
History Blame Contribute Delete
1.12 kB
from __future__ import annotations
from datetime import date
from typing import Any
def parse_odds(form: dict[str, str]) -> dict[str, float]:
if form.get("use_odds") != "on":
return {}
return {
"home_odds": _required_float(form, "home_odds"),
"draw_odds": _required_float(form, "draw_odds"),
"away_odds": _required_float(form, "away_odds"),
}
def custom_match_row(form: dict[str, str]) -> dict[str, Any]:
row: dict[str, Any] = {
"date": form.get("date") or date.today().isoformat(),
"home_team": form["home_team"],
"away_team": form["away_team"],
"tournament": form.get("tournament") or "World Cup",
"round": form.get("round") or "Group Stage",
"neutral": form.get("neutral") == "on",
}
row.update(parse_odds(form))
return row
def _required_float(form: dict[str, str], key: str) -> float:
value = form.get(key)
if value in {None, ""}:
raise ValueError(f"Missing {key}")
parsed = float(value)
if parsed <= 1:
raise ValueError(f"{key} must be greater than 1")
return parsed