A self-hosted Open-Meteo instance that isn't backfilled yet answers historical requests with all-null values (or only its recent sync window), which _finalize_frame reduces to a near-empty frame. That frame is not None, so the loader would accept it as source=open-meteo and cache it indefinitely as a complete record — never falling back to NASA and never self-healing after the backfill lands. Require at least MIN_ARCHIVE_DAYS before accepting an archive result; below that, fall through to the NASA backup and don't cache the short frame. Guards the prod cutover window. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| cities.py | ||
| city_events.py | ||
| climate.py | ||
| grading.py | ||
| grid.py | ||
| places.py | ||
| scoring.py | ||
| store.py | ||