Skip to content

Commit 78236d0

Browse files
committed
Convert generated formula methods into properties
Signed-off-by: Sahas Subramanian <[email protected]>
1 parent 824bb0c commit 78236d0

File tree

6 files changed

+26
-20
lines changed

6 files changed

+26
-20
lines changed

examples/power_distribution.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ async def run() -> None:
230230

231231
client_actor = DataCollectingActor(
232232
request_channel=power_dist_req_chan.new_sender(),
233-
active_power_data=logical_meter.grid_power().new_receiver(),
233+
active_power_data=logical_meter.grid_power.new_receiver(),
234234
)
235235

236236
await actor.run(service_actor, client_actor, power_distributor)

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ def component_ids(self) -> abc.Set[int]:
104104
"""
105105
return self._component_ids
106106

107+
@property
107108
def current(self) -> FormulaEngine3Phase:
108109
"""Fetch the total current for the EV Chargers in the pool.
109110
@@ -123,6 +124,7 @@ def current(self) -> FormulaEngine3Phase:
123124
FormulaGeneratorConfig(component_ids=self._component_ids),
124125
) # type: ignore[return-value]
125126

127+
@property
126128
def power(self) -> FormulaEngine:
127129
"""Fetch the total power for the EV Chargers in the pool.
128130

src/frequenz/sdk/timeseries/logical_meter/_logical_meter.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ def start_formula(
140140
formula, component_metric_id, nones_are_zeros
141141
)
142142

143+
@property
143144
def grid_power(self) -> FormulaEngine:
144145
"""Fetch the grid power for the microgrid.
145146
@@ -157,6 +158,7 @@ def grid_power(self) -> FormulaEngine:
157158
GridPowerFormula,
158159
) # type: ignore[return-value]
159160

161+
@property
160162
def grid_current(self) -> FormulaEngine3Phase:
161163
"""Fetch the grid power for the microgrid.
162164
@@ -174,6 +176,7 @@ def grid_current(self) -> FormulaEngine3Phase:
174176
GridCurrentFormula,
175177
) # type: ignore[return-value]
176178

179+
@property
177180
def battery_power(self) -> FormulaEngine:
178181
"""Fetch the cumulative battery power in the microgrid.
179182
@@ -191,6 +194,7 @@ def battery_power(self) -> FormulaEngine:
191194
BatteryPowerFormula,
192195
) # type: ignore[return-value]
193196

197+
@property
194198
def pv_power(self) -> FormulaEngine:
195199
"""Fetch the PV power production in the microgrid.
196200

tests/timeseries/_formula_engine/test_formula_composition.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,11 @@ async def test_formula_composition( # pylint: disable=too-many-locals
3333
4,
3434
ComponentMetricId.ACTIVE_POWER,
3535
)
36-
grid_power_recv = logical_meter.grid_power().new_receiver()
37-
battery_power_recv = logical_meter.battery_power().new_receiver()
38-
pv_power_recv = logical_meter.pv_power().new_receiver()
36+
grid_power_recv = logical_meter.grid_power.new_receiver()
37+
battery_power_recv = logical_meter.battery_power.new_receiver()
38+
pv_power_recv = logical_meter.pv_power.new_receiver()
3939

40-
engine = (logical_meter.pv_power() + logical_meter.battery_power()).build(
40+
engine = (logical_meter.pv_power + logical_meter.battery_power).build(
4141
"inv_power"
4242
)
4343
inv_calc_recv = engine.new_receiver()
@@ -71,9 +71,9 @@ async def test_formula_composition_missing_pv(self, mocker: MockerFixture) -> No
7171
await mockgrid.start(mocker)
7272
logical_meter = microgrid.logical_meter()
7373

74-
battery_power_recv = logical_meter.battery_power().new_receiver()
75-
pv_power_recv = logical_meter.pv_power().new_receiver()
76-
engine = (logical_meter.pv_power() + logical_meter.battery_power()).build(
74+
battery_power_recv = logical_meter.battery_power.new_receiver()
75+
pv_power_recv = logical_meter.pv_power.new_receiver()
76+
engine = (logical_meter.pv_power + logical_meter.battery_power).build(
7777
"inv_power"
7878
)
7979
inv_calc_recv = engine.new_receiver()
@@ -100,9 +100,9 @@ async def test_formula_composition_missing_bat(self, mocker: MockerFixture) -> N
100100
await mockgrid.start(mocker)
101101
logical_meter = microgrid.logical_meter()
102102

103-
battery_power_recv = logical_meter.battery_power().new_receiver()
104-
pv_power_recv = logical_meter.pv_power().new_receiver()
105-
engine = (logical_meter.pv_power() + logical_meter.battery_power()).build(
103+
battery_power_recv = logical_meter.battery_power.new_receiver()
104+
pv_power_recv = logical_meter.pv_power.new_receiver()
105+
engine = (logical_meter.pv_power + logical_meter.battery_power).build(
106106
"inv_power"
107107
)
108108
inv_calc_recv = engine.new_receiver()
@@ -131,10 +131,10 @@ async def test_3_phase_formulas(self, mocker: MockerFixture) -> None:
131131
logical_meter = microgrid.logical_meter()
132132
ev_pool = microgrid.ev_charger_pool()
133133

134-
grid_current_recv = logical_meter.grid_current().new_receiver()
135-
ev_current_recv = ev_pool.current().new_receiver()
134+
grid_current_recv = logical_meter.grid_current.new_receiver()
135+
ev_current_recv = ev_pool.current.new_receiver()
136136

137-
engine = (logical_meter.grid_current() - ev_pool.current()).build("net_current")
137+
engine = (logical_meter.grid_current - ev_pool.current).build("net_current")
138138
net_current_recv = engine.new_receiver()
139139

140140
await synchronize_receivers(

tests/timeseries/test_ev_charger_pool.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,8 @@ async def test_ev_power( # pylint: disable=too-many-locals
9696
mockgrid.main_meter_id,
9797
ComponentMetricId.ACTIVE_POWER,
9898
)
99-
grid_power_recv = logical_meter.grid_power().new_receiver()
100-
ev_power_recv = ev_pool.power().new_receiver()
99+
grid_power_recv = logical_meter.grid_power.new_receiver()
100+
ev_power_recv = ev_pool.power.new_receiver()
101101

102102
await synchronize_receivers([grid_power_recv, main_meter_recv, ev_power_recv])
103103

tests/timeseries/test_logical_meter.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ async def test_grid_power_1(self, mocker: MockerFixture) -> None:
3131
await mockgrid.start(mocker)
3232
logical_meter = microgrid.logical_meter()
3333

34-
grid_power_recv = logical_meter.grid_power().new_receiver()
34+
grid_power_recv = logical_meter.grid_power.new_receiver()
3535

3636
main_meter_recv = get_resampled_stream(
3737
mockgrid.main_meter_id,
@@ -63,7 +63,7 @@ async def test_grid_power_2(
6363
await mockgrid.start(mocker)
6464
logical_meter = microgrid.logical_meter()
6565

66-
grid_power_recv = logical_meter.grid_power().new_receiver()
66+
grid_power_recv = logical_meter.grid_power.new_receiver()
6767

6868
meter_receivers = [
6969
get_resampled_stream(
@@ -105,8 +105,8 @@ async def test_battery_and_pv_power( # pylint: disable=too-many-locals
105105
await mockgrid.start(mocker)
106106
logical_meter = microgrid.logical_meter()
107107

108-
battery_power_recv = logical_meter.battery_power().new_receiver()
109-
pv_power_recv = logical_meter.pv_power().new_receiver()
108+
battery_power_recv = logical_meter.battery_power.new_receiver()
109+
pv_power_recv = logical_meter.pv_power.new_receiver()
110110

111111
bat_inv_receivers = [
112112
get_resampled_stream(

0 commit comments

Comments
 (0)