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

FlexMeasures / flexmeasures-client / 41726578056 / 1
95%
main: 95%

Build:
DEFAULT BRANCH: main
Ran 03 Nov 2026 09:59PM UTC
Files 6
Run time 0s
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

03 Nov 2026 09:58PM UTC coverage: 95.673%. Remained the same
41726578056.1

push

github

web-flow
fix(FRBC): record what a resource manager declares about its storage (#244)

* fix(FRBC): record what a resource manager declares about its storage

A standard FRBC resource manager announces three things after its system
description: the fill levels it wants to be kept between, the usage it
expects to draw, and what its storage leaks on its own. The base handler
raises NotImplementedError for all three, and the CEM dispatches each as
a task nobody awaits, so asyncio reported each one as "Task exception was
never retrieved". Every connection by a resource manager that sends all
three therefore produced three tracebacks and recorded none of what they
declared. This was measured against a real resource manager, not inferred.

FRBCSimple now implements the three handlers, translating each message
with the helpers that were already there and posting the result. The four
sensors they post to are optional constructor arguments, so no existing
caller has to change: without a sensor, that declaration is not recorded,
and the handler says so, rather than posting it somewhere else or
crashing. A fill-level band is two series, so a target profile is
recorded only where both bounds have a sensor.

A target profile is held inside the fill-level range of the latest system
description, which is what clip_fill_level_target_profile is for. The two
do not have to agree: a night setback can aim below the range, and a
profile sent before a description that narrowed the range can fall
outside it. Where they disagree the range wins, since that is what the
resource manager says its storage can do. Clipping alone can leave a
minimum above its maximum where the whole band is outside the range, so
those collapse to their midpoint, keeping minima at or below maxima
everywhere.

The flooring that schedule_start did inline is now align_to_resolution,
because a usage forecast and a leakage behaviour need it too: FlexMeasures
reads a series on whole resolution steps, and no moment ... (continued)

995 of 1040 relevant lines covered (95.67%)

0.96 hits per line

Source Files on job macos-latest - py3.13 - 41726578056.1
  • Tree
  • List 6
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 41726578056
  • 742e39e6 on github
  • Prev Job for on main (#41698307534.1)
  • Next Job for on main (#41825255908.3)
  • Delete
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