Promote develop to main: release 22.7.0 (downloader hoist utils)#385
Merged
Conversation
…orecast, download_side_tables Hoist three small, pure/safe-compatible utilities out of the bart26l-vorlesung team_4 four-zone submission script into the certified downloader, where they can be tested and documented: - derive_download_window(now, *, train_years, start_margin_days=45, data_end=None) -> (start_dl, end_dl): derives the ENTSO-E download window from a training horizon. Requires a tz-aware `now`; rejects bool/non-positive train_years and malformed data_end. - extract_entsoe_hourly_forecast(interim, *, column="Forecasted Load"): resamples an interim frame's day-ahead forecast column to a clean hourly series; raises on missing column / non-DatetimeIndex / all-NaN. - download_side_tables(...): one call to refresh the renewable-forecast and day-ahead-price side tables. Fail-loud by default (on_provider_failure="raise"); "skip" is opt-in, logged degradation (operator policy). All three use only pandas + stdlib + existing downloader functions — no spotforecast2 import, no __init__ change (registered in _quarto.yml only). The warn-and-continue / fallback policy stays operator-side per the established mechanism-vs-policy boundary. Tests: new tests/test_downloader_entsoe_utils.py (pure functions) and extended tests/test_downloader_entsoe_side_tables.py (download_side_tables). Fast suite green, coverage 73.8% (ratchet 68). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ownloader-hoist-utils feat(downloader): hoist derive_download_window, extract_entsoe_hourly_forecast, download_side_tables
## [22.7.0-rc.1](v22.6.0...v22.7.0-rc.1) (2026-06-14) ### Features * **downloader:** add derive_download_window, extract_entsoe_hourly_forecast, download_side_tables ([8f68b38](8f68b38))
- Call download_side_tables() as a statement instead of binding/asserting its always-None return value (CodeQL: use of a procedure's return value). - Patch _RETRY_BACKOFF_SECONDS via the string target form of monkeypatch.setattr, dropping the `import ... as _entsoe_mod` so the module is no longer imported both with `import` and `from ... import` (CodeQL). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…odeql-nits test(downloader): address CodeQL nits in side-table tests
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Promote
develop→mainto cut the final 22.7.0 release.Contents since 22.6.0 (the gap-repair release already on main):
feat(downloader):derive_download_window,extract_entsoe_hourly_forecast,download_side_tables(feat(downloader): hoist derive_download_window, extract_entsoe_hourly_forecast, download_side_tables #384) — three pure/safe-compatible utilities hoisted from the team_4 four-zone submission script, with tests + quartodoc, nospotforecast2import.semantic-release will compute 22.7.0 from the
featcommit and publish to PyPI via Trusted Publishers, deploy docs, and back-merge main → develop.🤖 Generated with Claude Code