• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

FlexMeasures / flexmeasures / 37625671193
87%

Build:
DEFAULT BRANCH: main
Ran 07 Oct 2026 01:13PM UTC
Jobs 1
Files 190
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

07 Oct 2026 01:04PM UTC coverage: 86.458% (+0.03%) from 86.425%
37625671193

push

github

web-flow
Refactor: Move forecast cycle persistence into the forecasting service (#2645)

* Refactor forecast cycle persistence into the forecasting service

Keep legacy pipeline and plugin entrypoints compatible while exposing computation-only predictions and cycles. Preserve per-cycle commits and use transient source attribution for synchronous dry runs.

Refs #2486. Validated with 94 forecasting tests and pre-commit hooks.

* docs/changelog: link forecast persistence entry to PR #2645

* Keep a forecaster's transient source with its organisation

Since #2634 an organisation is part of what identifies a data source, and
`_persist_data_source_id` now resolves `refresh_data_source(self.forecast_source())`
rather than the `data_source` property, which passed `source_account` along.
Without the account, the lookup asks for a source belonging to nobody, does not
find the forecaster's own, and creates an unowned one beside it: every queued
forecast would record under a source that says it belongs to no organisation,
and a `source-account` filter would stop matching the forecasts it used to.

The test has to own its asset to see any of this: `setup_fresh_test_forecast_data`
builds assets without an organisation, so the existing forecasting tests pass
whether or not the account is carried.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0129WrXeJ5gia2pctFH93BqC
Signed-off-by: F.N. Claessen <claessen@seita.nl>

* Say when a cycle saved no forecast at all

`save_forecast` returned on an empty frame before any logging, so a cycle that
computed nothing was indistinguishable in the log from a cycle that never ran.
The dry-run path already reports an empty forecast, through
`_log_forecast_dry_run`, so the saving path should not be the quiet one.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0129WrXeJ5gia2pctFH93BqC
Signed-off-by: F.N. Claessen <claessen@seita.nl>

... (continued)

105 of 111 new or added lines in 5 files covered. (94.59%)

21170 of 24486 relevant lines covered (86.46%)

0.86 hits per line

Uncovered Changes

Lines Coverage ∆ File
6
91.09
3.09% flexmeasures/data/services/forecasting.py
Jobs
ID Job ID Ran Files Coverage
1 37625671193.1 07 Oct 2026 01:13PM UTC 190
86.46
GitHub Action Run
Source Files on build 37625671193
  • Tree
  • List 190
  • Changed 5
  • Source Changed 5
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #37625671193
  • 99742236 on github
  • Prev Build on main (#37605771586)
  • Next Build on main (#37694222553)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc