Skip to content

Commit f957170

Browse files
committed
Use ComponentCategory to identify PowerManager type
Earlier a `PoolType` class was used to specify the target component category the power manager was supposed to support. That is not really necessary and the same information can be conveyed with a component_category argument. Signed-off-by: Sahas Subramanian <[email protected]>
1 parent 813f189 commit f957170

File tree

3 files changed

+12
-19
lines changed

3 files changed

+12
-19
lines changed

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

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
from frequenz.channels.util import SkipMissedAndDrift, Timer, select, selected_from
1515
from typing_extensions import override
1616

17-
from ...timeseries._base_types import PoolType, SystemBounds
17+
from ...microgrid.component import ComponentCategory
18+
from ...timeseries._base_types import SystemBounds
1819
from .._actor import Actor
1920
from .._channel_registry import ChannelRegistry
2021
from ._base_classes import Algorithm, BaseAlgorithm, Proposal, ReportRequest, _Report
@@ -31,7 +32,7 @@ class PowerManagingActor(Actor):
3132

3233
def __init__( # pylint: disable=too-many-arguments
3334
self,
34-
pool_type: PoolType,
35+
component_category: ComponentCategory,
3536
proposals_receiver: Receiver[Proposal],
3637
bounds_subscription_receiver: Receiver[ReportRequest],
3738
power_distributing_requests_sender: Sender[power_distributing.Request],
@@ -44,8 +45,8 @@ def __init__( # pylint: disable=too-many-arguments
4445
"""Create a new instance of the power manager.
4546
4647
Args:
47-
pool_type: The type of the component pool this power manager instance is
48-
going to support.
48+
component_category: The category of the component this power manager
49+
instance is going to support.
4950
proposals_receiver: The receiver for proposals.
5051
bounds_subscription_receiver: The receiver for bounds subscriptions.
5152
power_distributing_requests_sender: The sender for power distribution
@@ -63,7 +64,7 @@ def __init__( # pylint: disable=too-many-arguments
6364
f"PowerManagingActor: Unknown algorithm: {algorithm}"
6465
)
6566

66-
self._pool_type = pool_type
67+
self._component_category = component_category
6768
self._bounds_subscription_receiver = bounds_subscription_receiver
6869
self._power_distributing_requests_sender = power_distributing_requests_sender
6970
self._power_distributing_results_receiver = power_distributing_results_receiver
@@ -132,8 +133,11 @@ def _add_bounds_tracker(self, component_ids: frozenset[int]) -> None:
132133
microgrid,
133134
)
134135

135-
if self._pool_type is not PoolType.BATTERY_POOL:
136-
err = f"PowerManagingActor: Unsupported pool type: {self._pool_type}"
136+
if self._component_category is not ComponentCategory.BATTERY:
137+
err = (
138+
"PowerManagingActor: Unsupported component category: "
139+
f"{self._component_category}"
140+
)
137141
_logger.error(err)
138142
raise NotImplementedError(err)
139143
battery_pool = microgrid.battery_pool(component_ids)

src/frequenz/sdk/microgrid/_power_wrapper.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,9 @@ def _start_power_managing_actor(self) -> None:
8383
return
8484

8585
from ..actor._power_managing._power_managing_actor import PowerManagingActor
86-
from ..timeseries._base_types import PoolType
8786

8887
self._power_managing_actor = PowerManagingActor(
89-
pool_type=PoolType.BATTERY_POOL,
88+
component_category=ComponentCategory.BATTERY,
9089
proposals_receiver=self.proposal_channel.new_receiver(),
9190
bounds_subscription_receiver=(
9291
self.bounds_subscription_channel.new_receiver()

src/frequenz/sdk/timeseries/_base_types.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
"""Timeseries basic types."""
55

66
import dataclasses
7-
import enum
87
import functools
98
from collections.abc import Callable, Iterator
109
from dataclasses import dataclass
@@ -172,12 +171,3 @@ class SystemBounds:
172171
This is the range within which power requests are NOT allowed by the pool.
173172
If present, they will be a subset of the inclusion bounds.
174173
"""
175-
176-
177-
class PoolType(enum.Enum):
178-
"""Enumeration of component pool types."""
179-
180-
BATTERY_POOL = "BATTERY_POOL"
181-
EV_CHARGER_POOL = "EV_CHARGER_POOL"
182-
PV_POOL = "PV_POOL"
183-
CHP_POOL = "CHP_POOL"

0 commit comments

Comments
 (0)