Skip to content

Commit 7a6385d

Browse files
committed
Move PowerManagingActor to the microgrid module
Signed-off-by: Sahas Subramanian <[email protected]>
1 parent ba63c82 commit 7a6385d

File tree

16 files changed

+20
-33
lines changed

16 files changed

+20
-33
lines changed
File renamed without changes.

src/frequenz/sdk/actor/_power_managing/_base_classes.py renamed to src/frequenz/sdk/microgrid/_power_managing/_base_classes.py

File renamed without changes.
File renamed without changes.

src/frequenz/sdk/actor/_power_managing/_matryoshka.py renamed to src/frequenz/sdk/microgrid/_power_managing/_matryoshka.py

File renamed without changes.

src/frequenz/sdk/actor/_power_managing/_power_managing_actor.py renamed to src/frequenz/sdk/microgrid/_power_managing/_power_managing_actor.py

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import asyncio
99
import logging
1010
import sys
11-
import typing
1211
from datetime import datetime, timedelta, timezone
1312

1413
from frequenz.channels import Receiver, Sender, select, selected_from
@@ -17,17 +16,15 @@
1716
from typing_extensions import override
1817

1918
from ..._internal._channels import ChannelRegistry
19+
from ...actor import Actor, power_distributing
2020
from ...timeseries import Power
2121
from ...timeseries._base_types import Bounds, SystemBounds
22-
from .._actor import Actor
22+
from .. import _data_pipeline
2323
from ._base_classes import Algorithm, BaseAlgorithm, Proposal, ReportRequest, _Report
2424
from ._matryoshka import Matryoshka
2525

2626
_logger = logging.getLogger(__name__)
2727

28-
if typing.TYPE_CHECKING:
29-
from .. import power_distributing
30-
3128

3229
class PowerManagingActor(Actor): # pylint: disable=too-many-instance-attributes
3330
"""The power manager."""
@@ -160,28 +157,23 @@ def _add_system_bounds_tracker(self, component_ids: frozenset[int]) -> None:
160157
Raises:
161158
NotImplementedError: When the pool type is not supported.
162159
"""
163-
# Pylint assumes that this import is cyclic, but it's not.
164-
from ... import ( # pylint: disable=import-outside-toplevel,cyclic-import
165-
microgrid,
166-
)
167-
168160
bounds_receiver: Receiver[SystemBounds]
169161
# pylint: disable=protected-access
170162
if self._component_category is ComponentCategory.BATTERY:
171-
battery_pool = microgrid.new_battery_pool(
163+
battery_pool = _data_pipeline.new_battery_pool(
172164
priority=-sys.maxsize - 1, component_ids=component_ids
173165
)
174166
bounds_receiver = battery_pool._system_power_bounds.new_receiver()
175167
elif self._component_category is ComponentCategory.EV_CHARGER:
176-
ev_charger_pool = microgrid.new_ev_charger_pool(
168+
ev_charger_pool = _data_pipeline.new_ev_charger_pool(
177169
priority=-sys.maxsize - 1, component_ids=component_ids
178170
)
179171
bounds_receiver = ev_charger_pool._system_power_bounds.new_receiver()
180172
elif (
181173
self._component_category is ComponentCategory.INVERTER
182174
and self._component_type is InverterType.SOLAR
183175
):
184-
pv_pool = microgrid.new_pv_pool(
176+
pv_pool = _data_pipeline.new_pv_pool(
185177
priority=-sys.maxsize - 1, component_ids=component_ids
186178
)
187179
bounds_receiver = pv_pool._system_power_bounds.new_receiver()
@@ -320,8 +312,6 @@ async def _send_updated_target_power(
320312
proposal: Proposal | None,
321313
must_send: bool = False,
322314
) -> None:
323-
from .. import power_distributing # pylint: disable=import-outside-toplevel
324-
325315
target_power = self._calculate_target_power(
326316
component_ids,
327317
proposal,
@@ -395,10 +385,6 @@ async def _run(self) -> None:
395385
self._add_system_bounds_tracker(component_ids)
396386

397387
elif selected_from(selected, self._power_distributing_results_receiver):
398-
from .. import ( # pylint: disable=import-outside-toplevel
399-
power_distributing,
400-
)
401-
402388
result = selected.message
403389
if not isinstance(result, power_distributing.Success):
404390
_logger.warning(

src/frequenz/sdk/actor/_power_managing/_sorted_set.py renamed to src/frequenz/sdk/microgrid/_power_managing/_sorted_set.py

File renamed without changes.

src/frequenz/sdk/microgrid/_power_wrapper.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@
1717
from frequenz.client.microgrid import ComponentCategory, ComponentType
1818

1919
from .._internal._channels import ChannelRegistry, ReceiverFetcher
20+
from . import _power_managing
2021

2122
# A number of imports had to be done inside functions where they are used, to break
2223
# import cycles.
2324
#
2425
# pylint: disable=import-outside-toplevel
2526
if typing.TYPE_CHECKING:
26-
from ..actor import _power_managing
2727
from ..actor.power_distributing import ( # noqa: F401 (imports used by string type hints)
2828
ComponentPoolStatus,
2929
PowerDistributingActor,
@@ -107,9 +107,7 @@ def _start_power_managing_actor(self) -> None:
107107
)
108108
return
109109

110-
from ..actor._power_managing._power_managing_actor import PowerManagingActor
111-
112-
self._power_managing_actor = PowerManagingActor(
110+
self._power_managing_actor = _power_managing.PowerManagingActor(
113111
component_category=self._component_category,
114112
component_type=self._component_type,
115113
proposals_receiver=self.proposal_channel.new_receiver(),

src/frequenz/sdk/timeseries/battery_pool/_battery_pool.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414

1515
from ... import timeseries
1616
from ..._internal._channels import MappingReceiverFetcher, ReceiverFetcher
17-
from ...actor import _power_managing, power_distributing
17+
from ...actor import power_distributing
18+
from ...microgrid import _power_managing
1819
from ...timeseries import Energy, Percentage, Power, Sample, Temperature
1920
from .._base_types import SystemBounds
2021
from ..formula_engine import FormulaEngine

src/frequenz/sdk/timeseries/battery_pool/_battery_pool_reference_store.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@
1616
from ..._internal._asyncio import cancel_and_await
1717
from ..._internal._channels import ChannelRegistry, ReceiverFetcher
1818
from ...actor._data_sourcing._component_metric_request import ComponentMetricRequest
19-
from ...actor._power_managing._base_classes import Proposal, ReportRequest
2019
from ...actor.power_distributing import Result
2120
from ...actor.power_distributing._component_status import ComponentPoolStatus
2221
from ...microgrid import connection_manager
22+
from ...microgrid._power_managing._base_classes import Proposal, ReportRequest
2323
from ..formula_engine._formula_engine_pool import FormulaEnginePool
2424
from ._methods import MetricAggregator
2525

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
from collections import abc
1010

1111
from ..._internal._channels import MappingReceiverFetcher, ReceiverFetcher
12-
from ...actor import _power_managing, power_distributing
12+
from ...actor import power_distributing
13+
from ...microgrid import _power_managing
1314
from ...timeseries import Bounds
1415
from .._base_types import SystemBounds
1516
from .._quantities import Current, Power

0 commit comments

Comments
 (0)