Skip to content

Commit 2250a95

Browse files
committed
Replace Peekable with LatestValueCache in EVChargerPool
Signed-off-by: Sahas Subramanian <[email protected]>
1 parent ae49232 commit 2250a95

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

src/frequenz/sdk/timeseries/ev_charger_pool/_set_current_bounds.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from frequenz.channels.util import Timer, select, selected_from
1313

1414
from ..._internal._asyncio import cancel_and_await
15+
from ..._internal._channels import LatestValueCache
1516
from ...microgrid import connection_manager
1617
from ...microgrid.component import ComponentCategory
1718

@@ -93,16 +94,16 @@ async def _run(self) -> None:
9394
_logger.error(err)
9495
raise RuntimeError(err)
9596

96-
meter_data = (
97+
meter_data = LatestValueCache(
9798
await api_client.meter_data(next(iter(meters)).component_id)
98-
).into_peekable()
99+
)
99100
latest_bound: dict[int, ComponentCurrentLimit] = {}
100101

101102
bound_chan = self._bounds_rx
102103
timer = Timer.timeout(timedelta(self._repeat_interval.total_seconds()))
103104

104105
async for selected in select(bound_chan, timer):
105-
meter = meter_data.peek()
106+
meter = meter_data.latest_value
106107
if meter is None:
107108
raise ValueError("Meter channel closed.")
108109

0 commit comments

Comments
 (0)