Skip to content

Commit 8173981

Browse files
committed
Make Formulas take a max_size parameter
That's what the `FormulaEngine` used to do. Signed-off-by: Sahas Subramanian <[email protected]>
1 parent 0cd3135 commit 8173981

File tree

2 files changed

+7
-10
lines changed

2 files changed

+7
-10
lines changed

src/frequenz/sdk/timeseries/formulas/_formula.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
)
1818

1919
from ...actor import BackgroundService
20-
from .. import ReceiverFetcher, Sample
20+
from .. import Sample
2121
from .._base_types import QuantityT
2222
from . import _ast
2323
from ._base_ast_node import AstNode
@@ -39,7 +39,7 @@ async def fetcher(f: Formula[QuantityT]) -> Receiver[Sample[QuantityT]]:
3939
return lambda: fetcher(formula)
4040

4141

42-
class Formula(BackgroundService, ReceiverFetcher[Sample[QuantityT]]):
42+
class Formula(BackgroundService, Generic[QuantityT]):
4343
"""A formula represented as an AST."""
4444

4545
def __init__( # pylint: disable=too-many-arguments
@@ -84,12 +84,11 @@ def __str__(self) -> str:
8484
"""Return a string representation of the formula."""
8585
return f"[{self._name}]({self._root})"
8686

87-
@override
88-
def new_receiver(self, *, limit: int = 50) -> Receiver[Sample[QuantityT]]:
87+
def new_receiver(self, *, max_size: int = 50) -> Receiver[Sample[QuantityT]]:
8988
"""Subscribe to the formula evaluator to get evaluated samples."""
9089
if not self._evaluator.is_running:
9190
self.start()
92-
return self._channel.new_receiver(limit=limit)
91+
return self._channel.new_receiver(limit=max_size)
9392

9493
@override
9594
def start(self) -> None:

src/frequenz/sdk/timeseries/formulas/_formula_3_phase.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
from frequenz.channels import Broadcast, Receiver
1515
from typing_extensions import override
1616

17-
from ..._internal._channels import ReceiverFetcher
1817
from ...actor import BackgroundService
1918
from .._base_types import QuantityT, Sample3Phase
2019
from ._formula import Formula, FormulaBuilder
@@ -23,7 +22,7 @@
2322
)
2423

2524

26-
class Formula3Phase(BackgroundService, ReceiverFetcher[Sample3Phase[QuantityT]]):
25+
class Formula3Phase(BackgroundService, Generic[QuantityT]):
2726
"""A composite formula for three-phase metrics."""
2827

2928
def __init__( # pylint: disable=too-many-arguments
@@ -58,12 +57,11 @@ def __init__( # pylint: disable=too-many-arguments
5857
Formula3PhaseEvaluatingActor(phase_1, phase_2, phase_3, self._channel)
5958
)
6059

61-
@override
62-
def new_receiver(self, *, limit: int = 50) -> Receiver[Sample3Phase[QuantityT]]:
60+
def new_receiver(self, *, max_size: int = 50) -> Receiver[Sample3Phase[QuantityT]]:
6361
"""Subscribe to the output of this formula."""
6462
if not self._evaluator.is_running:
6563
self.start()
66-
return self._channel.new_receiver(limit=limit)
64+
return self._channel.new_receiver(limit=max_size)
6765

6866
@override
6967
def start(self) -> None:

0 commit comments

Comments
 (0)