Skip to content

Commit 518c0bf

Browse files
committed
Avoid creating dangling MetricFetchers
When using `setdefault()`, if an object already existed for that key, a `MetricFetcher` will be created anyways, only to be discarded right after it was created. Signed-off-by: Leandro Lucarella <[email protected]>
1 parent abe74d7 commit 518c0bf

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

src/frequenz/sdk/timeseries/formula_engine/_formula_engine.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -719,15 +719,15 @@ def push_metric(
719719
invalid data (e.g. due to a component stop). If None, the data from
720720
primary metric fetcher will be used.
721721
"""
722-
fetcher = self._metric_fetchers.setdefault(
723-
name,
724-
MetricFetcher(
722+
fetcher = self._metric_fetchers.get(name)
723+
if fetcher is None:
724+
fetcher = MetricFetcher(
725725
name,
726726
data_stream,
727727
nones_are_zeros=nones_are_zeros,
728728
fallback=fallback,
729-
),
730-
)
729+
)
730+
self._metric_fetchers[name] = fetcher
731731
self._steps.append(fetcher)
732732

733733
def push_constant(self, value: float) -> None:

0 commit comments

Comments
 (0)