fix letni /zimni cas OTE
All checks were successful
deploy / deploy (push) Successful in 19s
test / smoke-test (push) Successful in 5s

This commit is contained in:
Dusan Vojacek
2026-04-12 21:57:37 +02:00
parent 5919b6caf3
commit f0dfcefd54
4 changed files with 62 additions and 40 deletions

View File

@@ -17,7 +17,7 @@ Lokálně (venv s backend/requirements.txt):
Volby:
--days 730 posledních N kalendářních dní (Europe/Prague), výchozí 730 ≈ 2 roky
--from-date / --to-date pevný rozsah YYYY-MM-DD (má přednost před --days u konce rozsahu)
--force stáhnout znovu i dny, kde už je 96 slotů
--force stáhnout znovu i dny s plným počtem slotů OTE (92/96/100)
--dry-run jen vypsat chybějící dny, bez HTTP
--delay SEC pauza mezi dny (výchozí 0.35)
--refresh-predictions po skončení zavolat fn_predict_negative_price_windows pro aktivní site
@@ -57,9 +57,10 @@ except ModuleNotFoundError as e:
from app.config import get_settings # noqa: E402
from services.price_importer import ( # noqa: E402
OTE_EXPECTED_SLOTS,
OTE_FULL_DAY_SLOT_COUNTS,
backfill_ote_prices,
count_ote_slots_prague_day,
ote_prague_day_slots_look_complete,
)
PRAGUE = ZoneInfo("Europe/Prague")
@@ -82,7 +83,7 @@ async def _dry_run_missing(
if d > today_prague:
break
n = await count_ote_slots_prague_day(conn, d)
if n < OTE_EXPECTED_SLOTS:
if not ote_prague_day_slots_look_complete(n):
out.append(d)
d += timedelta(days=1)
return out
@@ -136,9 +137,9 @@ async def main_async(args: argparse.Namespace) -> int:
if args.dry_run:
missing = await _dry_run_missing(conn, start, end, today_prague)
logging.info(
"Dry-run: %s chybějících nebo neúplných dní (< %s slotů)",
"Dry-run: %s chybějících nebo neúplných dní (plný den = jedna z %s)",
len(missing),
OTE_EXPECTED_SLOTS,
sorted(OTE_FULL_DAY_SLOT_COUNTS),
)
for md in missing[:50]:
n = await count_ote_slots_prague_day(conn, md)
@@ -198,7 +199,7 @@ def main() -> None:
parser.add_argument(
"--force",
action="store_true",
help="Stáhnout znovu i dny s plnými %s sloty" % OTE_EXPECTED_SLOTS,
help="Stáhnout znovu i dny s plným počtem slotů OTE (92/96/100)",
)
parser.add_argument("--dry-run", action="store_true", help="Jen vypsat chybějící dny")
parser.add_argument(