Skip to content

Commit 4d5b98e

Browse files
committed
Rename Request.batteriescomponent_ids in PowerDistributingActor
Signed-off-by: Sahas Subramanian <[email protected]>
1 parent cb8b407 commit 4d5b98e

File tree

4 files changed

+49
-47
lines changed

4 files changed

+49
-47
lines changed

src/frequenz/sdk/actor/_power_managing/_power_managing_actor.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ async def _send_updated_target_power(
171171
await self._power_distributing_requests_sender.send(
172172
power_distributing.Request(
173173
power=target_power,
174-
batteries=component_ids,
174+
component_ids=component_ids,
175175
request_timeout=request_timeout,
176176
adjust_power=True,
177177
)
@@ -229,10 +229,12 @@ async def _run(self) -> None:
229229
)
230230

231231
result = selected.value
232-
self._distribution_results[frozenset(result.request.batteries)] = result
232+
self._distribution_results[
233+
frozenset(result.request.component_ids)
234+
] = result
233235
match result:
234236
case power_distributing.PartialFailure(request):
235237
await self._send_updated_target_power(
236-
frozenset(request.batteries), None, must_send=True
238+
frozenset(request.component_ids), None, must_send=True
237239
)
238-
await self._send_reports(frozenset(result.request.batteries))
240+
await self._send_reports(frozenset(result.request.component_ids))

src/frequenz/sdk/actor/power_distributing/power_distributing.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ async def _run(self) -> None: # pylint: disable=too-many-locals
297297
async for request in self._requests_receiver:
298298
try:
299299
pairs_data: list[InvBatPair] = self._get_components_data(
300-
request.batteries
300+
request.component_ids
301301
)
302302
except KeyError as err:
303303
await self._result_sender.send(Error(request=request, msg=str(err)))
@@ -306,7 +306,7 @@ async def _run(self) -> None: # pylint: disable=too-many-locals
306306
if not pairs_data:
307307
error_msg = (
308308
"No data for at least one of the given "
309-
f"batteries {str(request.batteries)}"
309+
f"batteries {str(request.component_ids)}"
310310
)
311311
await self._result_sender.send(
312312
Error(request=request, msg=str(error_msg))
@@ -427,7 +427,7 @@ def _get_power_distribution(
427427
self._bat_bats_map, {pair.battery.component_id for pair in inv_bat_pairs}
428428
)
429429

430-
unavailable_bat_ids = request.batteries - available_bat_ids
430+
unavailable_bat_ids = request.component_ids - available_bat_ids
431431
unavailable_inv_ids: set[int] = set()
432432

433433
for inverter_ids in [
@@ -455,10 +455,10 @@ def _check_request(
455455
Returns:
456456
Result for the user if the request is wrong, None otherwise.
457457
"""
458-
if not request.batteries:
458+
if not request.component_ids:
459459
return Error(request=request, msg="Empty battery IDs in the request")
460460

461-
for battery in request.batteries:
461+
for battery in request.component_ids:
462462
_logger.debug("Checking battery %d", battery)
463463
if battery not in self._battery_receivers:
464464
msg = (

src/frequenz/sdk/actor/power_distributing/request.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ class Request:
1717
power: Power
1818
"""The requested power."""
1919

20-
batteries: abc.Set[int]
21-
"""The component ids of the batteries to be used for this request."""
20+
component_ids: abc.Set[int]
21+
"""The component ids of the components to be used for this request."""
2222

2323
request_timeout: timedelta = timedelta(seconds=5.0)
2424
"""The maximum amount of time to wait for the request to be fulfilled."""
@@ -29,6 +29,6 @@ class Request:
2929
If `True`, the power will be adjusted (lowered) to match the bounds, so
3030
only the reduced power will be set.
3131
32-
If `False` and the power is outside the batteries' bounds, the request will
32+
If `False` and the power is outside the available bounds, the request will
3333
fail and be replied to with an `OutOfBound` result.
3434
"""

tests/actor/power_distributing/test_power_distributing.py

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -119,11 +119,11 @@ async def test_power_distributor_one_user(self, mocker: MockerFixture) -> None:
119119

120120
request = Request(
121121
power=Power.from_kilowatts(1.2),
122-
batteries={9, 19},
122+
component_ids={9, 19},
123123
request_timeout=SAFETY_TIMEOUT,
124124
)
125125

126-
attrs = {"get_working_components.return_value": request.batteries}
126+
attrs = {"get_working_components.return_value": request.component_ids}
127127
mocker.patch(
128128
"frequenz.sdk.actor.power_distributing.power_distributing.ComponentPoolStatusTracker",
129129
return_value=MagicMock(spec=ComponentPoolStatusTracker, **attrs),
@@ -202,7 +202,7 @@ async def test_power_distributor_exclusion_bounds(
202202
# zero power requests should pass through despite the exclusion bounds.
203203
request = Request(
204204
power=Power.zero(),
205-
batteries={9, 19},
205+
component_ids={9, 19},
206206
request_timeout=SAFETY_TIMEOUT,
207207
)
208208

@@ -227,7 +227,7 @@ async def test_power_distributor_exclusion_bounds(
227227
# rejected.
228228
request = Request(
229229
power=Power.from_watts(300.0),
230-
batteries={9, 19},
230+
component_ids={9, 19},
231231
request_timeout=SAFETY_TIMEOUT,
232232
)
233233

@@ -282,11 +282,11 @@ async def test_two_batteries_one_inverters(self, mocker: MockerFixture) -> None:
282282
results_channel = Broadcast[Result]("power_distributor results")
283283
request = Request(
284284
power=Power.from_watts(1200.0),
285-
batteries={bat_component1.component_id, bat_component2.component_id},
285+
component_ids={bat_component1.component_id, bat_component2.component_id},
286286
request_timeout=SAFETY_TIMEOUT,
287287
)
288288

289-
attrs = {"get_working_components.return_value": request.batteries}
289+
attrs = {"get_working_components.return_value": request.component_ids}
290290

291291
mocker.patch(
292292
"frequenz.sdk.actor.power_distributing.power_distributing.ComponentPoolStatusTracker",
@@ -364,11 +364,11 @@ async def test_two_batteries_one_broken_one_inverters(
364364

365365
request = Request(
366366
power=Power.from_watts(1200.0),
367-
batteries=set(battery.component_id for battery in bat_components),
367+
component_ids=set(battery.component_id for battery in bat_components),
368368
request_timeout=SAFETY_TIMEOUT,
369369
)
370370

371-
attrs = {"get_working_components.return_value": request.batteries}
371+
attrs = {"get_working_components.return_value": request.component_ids}
372372

373373
mocker.patch(
374374
"frequenz.sdk.actor.power_distributing.power_distributing.ComponentPoolStatusTracker",
@@ -438,11 +438,11 @@ async def test_battery_two_inverters(self, mocker: MockerFixture) -> None:
438438

439439
request = Request(
440440
power=Power.from_watts(1200.0),
441-
batteries={bat_component.component_id},
441+
component_ids={bat_component.component_id},
442442
request_timeout=SAFETY_TIMEOUT,
443443
)
444444

445-
attrs = {"get_working_components.return_value": request.batteries}
445+
attrs = {"get_working_components.return_value": request.component_ids}
446446

447447
mocker.patch(
448448
"frequenz.sdk.actor.power_distributing.power_distributing.ComponentPoolStatusTracker",
@@ -516,11 +516,11 @@ async def test_two_batteries_three_inverters(self, mocker: MockerFixture) -> Non
516516

517517
request = Request(
518518
power=Power.from_watts(1700.0),
519-
batteries={batteries[0].component_id, batteries[1].component_id},
519+
component_ids={batteries[0].component_id, batteries[1].component_id},
520520
request_timeout=SAFETY_TIMEOUT,
521521
)
522522

523-
attrs = {"get_working_components.return_value": request.batteries}
523+
attrs = {"get_working_components.return_value": request.component_ids}
524524

525525
mocker.patch(
526526
"frequenz.sdk.actor.power_distributing.power_distributing.ComponentPoolStatusTracker",
@@ -605,11 +605,11 @@ async def test_two_batteries_one_inverter_different_exclusion_bounds_2(
605605

606606
request = Request(
607607
power=Power.from_watts(300.0),
608-
batteries={batteries[0].component_id, batteries[1].component_id},
608+
component_ids={batteries[0].component_id, batteries[1].component_id},
609609
request_timeout=SAFETY_TIMEOUT,
610610
)
611611

612-
attrs = {"get_working_components.return_value": request.batteries}
612+
attrs = {"get_working_components.return_value": request.component_ids}
613613

614614
mocker.patch(
615615
"frequenz.sdk.actor.power_distributing.power_distributing.ComponentPoolStatusTracker",
@@ -693,11 +693,11 @@ async def test_two_batteries_one_inverter_different_exclusion_bounds(
693693

694694
request = Request(
695695
power=Power.from_watts(300.0),
696-
batteries={batteries[0].component_id, batteries[1].component_id},
696+
component_ids={batteries[0].component_id, batteries[1].component_id},
697697
request_timeout=SAFETY_TIMEOUT,
698698
)
699699

700-
attrs = {"get_working_components.return_value": request.batteries}
700+
attrs = {"get_working_components.return_value": request.component_ids}
701701

702702
mocker.patch(
703703
"frequenz.sdk.actor.power_distributing.power_distributing.ComponentPoolStatusTracker",
@@ -764,11 +764,11 @@ async def test_connected_but_not_requested_batteries(
764764

765765
request = Request(
766766
power=Power.from_watts(600.0),
767-
batteries={batteries[0].component_id},
767+
component_ids={batteries[0].component_id},
768768
request_timeout=SAFETY_TIMEOUT,
769769
)
770770

771-
attrs = {"get_working_components.return_value": request.batteries}
771+
attrs = {"get_working_components.return_value": request.component_ids}
772772

773773
mocker.patch(
774774
"frequenz.sdk.actor.power_distributing.power_distributing.ComponentPoolStatusTracker",
@@ -827,11 +827,11 @@ async def test_battery_soc_nan(self, mocker: MockerFixture) -> None:
827827

828828
request = Request(
829829
power=Power.from_kilowatts(1.2),
830-
batteries={9, 19},
830+
component_ids={9, 19},
831831
request_timeout=SAFETY_TIMEOUT,
832832
)
833833

834-
attrs = {"get_working_components.return_value": request.batteries}
834+
attrs = {"get_working_components.return_value": request.component_ids}
835835
mocker.patch(
836836
"frequenz.sdk.actor.power_distributing.power_distributing.ComponentPoolStatusTracker",
837837
return_value=MagicMock(spec=ComponentPoolStatusTracker, **attrs),
@@ -844,7 +844,7 @@ async def test_battery_soc_nan(self, mocker: MockerFixture) -> None:
844844
results_sender=results_channel.new_sender(),
845845
battery_status_sender=battery_status_channel.new_sender(),
846846
):
847-
attrs = {"get_working_components.return_value": request.batteries}
847+
attrs = {"get_working_components.return_value": request.component_ids}
848848
mocker.patch(
849849
"frequenz.sdk.actor.power_distributing.power_distributing"
850850
".ComponentPoolStatusTracker",
@@ -892,10 +892,10 @@ async def test_battery_capacity_nan(self, mocker: MockerFixture) -> None:
892892

893893
request = Request(
894894
power=Power.from_kilowatts(1.2),
895-
batteries={9, 19},
895+
component_ids={9, 19},
896896
request_timeout=SAFETY_TIMEOUT,
897897
)
898-
attrs = {"get_working_components.return_value": request.batteries}
898+
attrs = {"get_working_components.return_value": request.component_ids}
899899
mocker.patch(
900900
"frequenz.sdk.actor.power_distributing.power_distributing.ComponentPoolStatusTracker",
901901
return_value=MagicMock(spec=ComponentPoolStatusTracker, **attrs),
@@ -964,10 +964,10 @@ async def test_battery_power_bounds_nan(self, mocker: MockerFixture) -> None:
964964

965965
request = Request(
966966
power=Power.from_kilowatts(1.2),
967-
batteries={9, 19},
967+
component_ids={9, 19},
968968
request_timeout=SAFETY_TIMEOUT,
969969
)
970-
attrs = {"get_working_components.return_value": request.batteries}
970+
attrs = {"get_working_components.return_value": request.component_ids}
971971
mocker.patch(
972972
"frequenz.sdk.actor.power_distributing.power_distributing.ComponentPoolStatusTracker",
973973
return_value=MagicMock(spec=ComponentPoolStatusTracker, **attrs),
@@ -1013,11 +1013,11 @@ async def test_power_distributor_invalid_battery_id(
10131013
results_channel = Broadcast[Result]("power_distributor results")
10141014
request = Request(
10151015
power=Power.from_kilowatts(1.2),
1016-
batteries={9, 100},
1016+
component_ids={9, 100},
10171017
request_timeout=SAFETY_TIMEOUT,
10181018
)
10191019

1020-
attrs = {"get_working_components.return_value": request.batteries}
1020+
attrs = {"get_working_components.return_value": request.component_ids}
10211021
mocker.patch(
10221022
"frequenz.sdk.actor.power_distributing.power_distributing.ComponentPoolStatusTracker",
10231023
return_value=MagicMock(spec=ComponentPoolStatusTracker, **attrs),
@@ -1061,12 +1061,12 @@ async def test_power_distributor_one_user_adjust_power_consume(
10611061

10621062
request = Request(
10631063
power=Power.from_kilowatts(1.2),
1064-
batteries={9, 19},
1064+
component_ids={9, 19},
10651065
request_timeout=SAFETY_TIMEOUT,
10661066
adjust_power=False,
10671067
)
10681068

1069-
attrs = {"get_working_components.return_value": request.batteries}
1069+
attrs = {"get_working_components.return_value": request.component_ids}
10701070
mocker.patch(
10711071
"frequenz.sdk.actor.power_distributing.power_distributing.ComponentPoolStatusTracker",
10721072
return_value=MagicMock(spec=ComponentPoolStatusTracker, **attrs),
@@ -1113,12 +1113,12 @@ async def test_power_distributor_one_user_adjust_power_supply(
11131113

11141114
request = Request(
11151115
power=-Power.from_kilowatts(1.2),
1116-
batteries={9, 19},
1116+
component_ids={9, 19},
11171117
request_timeout=SAFETY_TIMEOUT,
11181118
adjust_power=False,
11191119
)
11201120

1121-
attrs = {"get_working_components.return_value": request.batteries}
1121+
attrs = {"get_working_components.return_value": request.component_ids}
11221122
mocker.patch(
11231123
"frequenz.sdk.actor.power_distributing.power_distributing.ComponentPoolStatusTracker",
11241124
return_value=MagicMock(spec=ComponentPoolStatusTracker, **attrs),
@@ -1165,12 +1165,12 @@ async def test_power_distributor_one_user_adjust_power_success(
11651165

11661166
request = Request(
11671167
power=Power.from_kilowatts(1.0),
1168-
batteries={9, 19},
1168+
component_ids={9, 19},
11691169
request_timeout=SAFETY_TIMEOUT,
11701170
adjust_power=False,
11711171
)
11721172

1173-
attrs = {"get_working_components.return_value": request.batteries}
1173+
attrs = {"get_working_components.return_value": request.component_ids}
11741174
mocker.patch(
11751175
"frequenz.sdk.actor.power_distributing.power_distributing.ComponentPoolStatusTracker",
11761176
return_value=MagicMock(spec=ComponentPoolStatusTracker, **attrs),
@@ -1231,7 +1231,7 @@ async def test_not_all_batteries_are_working(self, mocker: MockerFixture) -> Non
12311231
):
12321232
request = Request(
12331233
power=Power.from_kilowatts(1.2),
1234-
batteries=batteries,
1234+
component_ids=batteries,
12351235
request_timeout=SAFETY_TIMEOUT,
12361236
)
12371237

@@ -1292,7 +1292,7 @@ async def test_partial_failure_result(self, mocker: MockerFixture) -> None:
12921292
):
12931293
request = Request(
12941294
power=Power.from_kilowatts(1.70),
1295-
batteries=batteries,
1295+
component_ids=batteries,
12961296
request_timeout=SAFETY_TIMEOUT,
12971297
)
12981298

0 commit comments

Comments
 (0)