fix(prediction): green up CI for the new PV providers (mypy + provider sequence)

- Use urllib.parse.quote instead of requests.utils.quote in the pvnode and
  Solcast providers: the runtime re-export exists, but the requests type stubs
  do not declare it, so the pre-commit mypy hook failed with
  'Module has no attribute "quote"'.
- Mark the force_update keyword in the new provider tests with `# type: ignore`
  — it is consumed by the cache_in_file decorator at runtime; same call
  convention and ignore style as pvforecastakkudoktor.py.
- Add PVForecastPVNode, PVForecastForecastSolar and PVForecastSolcast to the
  expected provider sequence in tests/test_prediction.py (fixture + index
  assertions) — the two sequence tests failed because the new providers were
  registered in prediction.py but missing from the hardcoded expectations.
This commit is contained in:
Christin
2026-07-04 09:23:57 +00:00
parent 6f4a26a045
commit d4dc9fa662
5 changed files with 25 additions and 10 deletions

View File

@@ -18,6 +18,7 @@ Notes:
import re
from typing import Any, Optional
from urllib.parse import quote
import requests
from loguru import logger
@@ -84,7 +85,7 @@ class PVForecastSolcast(PVForecastProvider):
if not settings.api_key or not settings.site_id:
raise ValueError("PVForecastSolcast requires api_key and site_id")
url = f"{SOLCAST_BASE}/{requests.utils.quote(settings.site_id, safe='')}/forecasts"
url = f"{SOLCAST_BASE}/{quote(settings.site_id, safe='')}/forecasts"
params = {"format": "json", "hours": "72"}
headers = {"Authorization": f"Bearer {settings.api_key}", "Accept": "application/json"}
logger.debug(f"Requesting Solcast forecast: {url}")