Skip to content

Commit 0acfd8e

Browse files
committed
Cleanup frequenz.sdk.microgrid
The module `frequenz.sdk.microgrid` was restructured so: * All component-related symbols (`.component`, `.component_data`, `.component_states`) were moved to the sub-module `frequenz.sdk.microgrid.component`. * All API client-related symbols (`.client`, `.connection`, `.retry`) were moved to the sub-module `frequenz.sdk.microgrid.client`. * The `ComponentGraph` is exposed directly in the main module (and only there). * The `microgrid_api` module is now exposed via the main module directly (and thus indirectly renamed to `microgrid`, so instead of using `from frequenz.sdk.microgrid import microgrid_api; microgrid_api.initialize()` (for example) you should use `from frequenz.sdk.microgrid import microgridi; microgrid.initialize()`. * The `MicrogridApi` class was renamed to `Microgrid` to make it clear it is not exclusively about the API. * The `Microgrid.microgrid_api_client` attribute was renamed to `Microgrid.api_client` to avoid the redundancy. Signed-off-by: Leandro Lucarella <[email protected]>
1 parent aa41fbf commit 0acfd8e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+217
-145
lines changed

benchmarks/data_ingestion/benchmark_microgrid_data.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,18 @@
2121
from frequenz.channels.util import MergeNamed, Select
2222
from google.protobuf.timestamp_pb2 import Timestamp # pylint:disable=no-name-in-module
2323

24-
import frequenz.sdk.microgrid.graph as gr
24+
import frequenz.sdk.microgrid._graph as gr
2525
from frequenz.sdk._data_handling.time_series import TimeSeriesEntry, TimeSeriesFormula
2626
from frequenz.sdk._data_ingestion.formula_calculator import FormulaCalculator
2727
from frequenz.sdk._data_ingestion.microgrid_data import MicrogridData
28-
from frequenz.sdk.microgrid import BatteryData, InverterData, MeterData
29-
from frequenz.sdk.microgrid.client import MicrogridGrpcClient
30-
from frequenz.sdk.microgrid.component import Component, ComponentCategory
31-
from frequenz.sdk.microgrid.connection import Connection
28+
from frequenz.sdk.microgrid.client import Connection, MicrogridGrpcClient
29+
from frequenz.sdk.microgrid.component import (
30+
BatteryData,
31+
Component,
32+
ComponentCategory,
33+
InverterData,
34+
MeterData,
35+
)
3236

3337

3438
def gen_market_data(component_id: int) -> MeterData:

benchmarks/power_distribution/power_distributor.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,10 @@
1818
Request,
1919
Result,
2020
)
21+
from frequenz.sdk.microgrid import ComponentGraph
22+
from frequenz.sdk.microgrid._graph import _MicrogridComponentGraph
2123
from frequenz.sdk.microgrid.client import MicrogridApiClient, MicrogridGrpcClient
2224
from frequenz.sdk.microgrid.component import Component, ComponentCategory
23-
from frequenz.sdk.microgrid.graph import ComponentGraph, _MicrogridComponentGraph
2425

2526
HOST = "157.90.243.180"
2627
PORT = 61060

examples/sdk_resampling_example.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,22 @@
88
from frequenz.channels import Broadcast
99
from frequenz.channels.util import MergeNamed
1010

11+
from frequenz.sdk import microgrid
1112
from frequenz.sdk.actor import (
1213
ChannelRegistry,
1314
ComponentMetricRequest,
1415
ComponentMetricsResamplingActor,
1516
DataSourcingActor,
1617
)
17-
from frequenz.sdk.microgrid import ComponentCategory, ComponentMetricId, microgrid_api
18+
from frequenz.sdk.microgrid.component import ComponentCategory, ComponentMetricId
1819

1920
HOST = "microgrid.sandbox.api.frequenz.io"
2021
PORT = 61060
2122

2223

2324
async def run() -> None: # pylint: disable=too-many-locals
2425
"""Run main functions that initializes and creates everything."""
25-
await microgrid_api.initialize(HOST, PORT)
26+
await microgrid.initialize(HOST, PORT)
2627

2728
channel_registry = ChannelRegistry(name="Microgrid Channel Registry")
2829

@@ -52,7 +53,7 @@ async def run() -> None: # pylint: disable=too-many-locals
5253
resampling_period_s=1.0,
5354
)
5455

55-
components = await microgrid_api.get().microgrid_api_client.components()
56+
components = await microgrid.get().api_client.components()
5657
battery_ids = [
5758
comp.component_id
5859
for comp in components

examples/sdk_usage_example.py

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
from frequenz.channels import Bidirectional, Broadcast, Receiver, Sender
2020

21+
from frequenz.sdk import microgrid
2122
from frequenz.sdk._data_handling import TimeSeriesEntry
2223
from frequenz.sdk._data_ingestion import MicrogridData
2324
from frequenz.sdk._data_ingestion.formula_calculator import FormulaCalculator
@@ -27,12 +28,7 @@
2728
Request,
2829
Result,
2930
)
30-
from frequenz.sdk.microgrid import (
31-
Component,
32-
ComponentCategory,
33-
MicrogridApi,
34-
microgrid_api,
35-
)
31+
from frequenz.sdk.microgrid.component import Component, ComponentCategory
3632

3733
_logger = logging.getLogger(__name__)
3834
HOST = "microgrid.sandbox.api.frequenz.io" # it should be the host name.
@@ -157,10 +153,9 @@ async def run() -> None:
157153
logging.basicConfig(
158154
level=logging.DEBUG, format="%(asctime)s %(name)s %(levelname)s:%(message)s"
159155
)
160-
await microgrid_api.initialize(HOST, PORT)
156+
await microgrid.initialize(HOST, PORT)
161157

162158
# await initialize(HOST, PORT) # in v0.8.0
163-
api: MicrogridApi = microgrid_api.get()
164159

165160
# Create MicrogridData
166161
microgrid_data_channels = {
@@ -169,11 +164,11 @@ async def run() -> None:
169164
),
170165
}
171166

172-
formula_calculator = FormulaCalculator(api.component_graph)
167+
formula_calculator = FormulaCalculator(microgrid.get().component_graph)
173168
microgrid_data = MicrogridData(
174-
microgrid_client=api.microgrid_api_client,
169+
microgrid_client=microgrid.get().api_client,
175170
# microgrid_client=microgrid_api.microgrid_api, # in v0.8.0
176-
component_graph=api.component_graph,
171+
component_graph=microgrid.get().component_graph,
177172
outputs={
178173
key: channel.new_sender()
179174
for key, channel in microgrid_data_channels.items()
@@ -190,9 +185,9 @@ async def run() -> None:
190185
}
191186

192187
power_distributor = PowerDistributingActor(
193-
microgrid_api=api.microgrid_api_client,
188+
microgrid_api=microgrid.get().api_client,
194189
# microgrid_api=microgrid_api.microgrid_api, in v0.8.0
195-
component_graph=api.component_graph,
190+
component_graph=microgrid.get().component_graph,
196191
users_channels={
197192
key: channel.service_handle
198193
for key, channel in power_distributor_channels.items()
@@ -204,7 +199,7 @@ async def run() -> None:
204199

205200
# You should get components from ComponentGraph, not from the api.
206201
# It is faster and and non blocking approach.
207-
batteries: Set[Component] = api.component_graph.components(
202+
batteries: Set[Component] = microgrid.get().component_graph.components(
208203
# component_type=set(ComponentType.BATTERY) in v0.8.0
209204
component_category={ComponentCategory.BATTERY}
210205
)

src/frequenz/sdk/_data_ingestion/component_info.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
from dataclasses import dataclass
88
from typing import Dict, List, Optional, Tuple
99

10+
from ..microgrid import ComponentGraph
1011
from ..microgrid.component import ComponentCategory
11-
from ..microgrid.graph import ComponentGraph
1212

1313
logger = logging.Logger(__name__)
1414

src/frequenz/sdk/_data_ingestion/formula_calculator.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
TimeSeriesEntry,
2323
TimeSeriesFormula,
2424
)
25-
from ..microgrid import ComponentCategory, ComponentGraph
25+
from ..microgrid import ComponentGraph
26+
from ..microgrid.component import ComponentCategory
2627
from .component_info import infer_microgrid_config
2728
from .constants import (
2829
METRIC_BATTERIES_ACTIVE_POWER,

src/frequenz/sdk/_data_ingestion/gen_component_receivers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
from frequenz.channels.util import Merge
1010

1111
from ..microgrid import client
12-
from ..microgrid.component import ComponentCategory
13-
from ..microgrid.component_data import (
12+
from ..microgrid.component import (
1413
BatteryData,
14+
ComponentCategory,
1515
EVChargerData,
1616
InverterData,
1717
MeterData,

src/frequenz/sdk/_data_ingestion/microgrid_data.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
from .._data_handling.time_series import TimeSeriesEntry
2222
from ..actor import actor
2323
from ..config import Config
24+
from ..microgrid import ComponentGraph
2425
from ..microgrid.client import MicrogridApiClient
25-
from ..microgrid.graph import ComponentGraph
2626
from .component_info import infer_microgrid_config
2727
from .formula_calculator import FormulaCalculator
2828
from .gen_component_receivers import gen_component_receivers

src/frequenz/sdk/actor/_data_sourcing/microgrid_api_source.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@
1111

1212
from frequenz.channels import Receiver, Sender
1313

14-
from ...microgrid import (
14+
from ... import microgrid
15+
from ...microgrid.component import (
1516
BatteryData,
1617
ComponentCategory,
1718
ComponentMetricId,
1819
EVChargerData,
1920
InverterData,
2021
MeterData,
21-
microgrid_api,
2222
)
2323
from ...timeseries import Sample
2424
from .._channel_registry import ChannelRegistry
@@ -138,7 +138,7 @@ async def _get_component_category(
138138
if comp_id in self._comp_categories_cache:
139139
return self._comp_categories_cache[comp_id]
140140

141-
api = microgrid_api.get().microgrid_api_client
141+
api = microgrid.get().api_client
142142
for comp in await api.components():
143143
self._comp_categories_cache[comp.component_id] = comp.category
144144

@@ -168,7 +168,7 @@ async def _check_battery_request(
168168
if comp_id not in self.comp_data_receivers:
169169
self.comp_data_receivers[
170170
comp_id
171-
] = await microgrid_api.get().microgrid_api_client.battery_data(comp_id)
171+
] = await microgrid.get().api_client.battery_data(comp_id)
172172

173173
async def _check_ev_charger_request(
174174
self,
@@ -191,7 +191,7 @@ async def _check_ev_charger_request(
191191
if comp_id not in self.comp_data_receivers:
192192
self.comp_data_receivers[
193193
comp_id
194-
] = await microgrid_api.get().microgrid_api_client.ev_charger_data(comp_id)
194+
] = await microgrid.get().api_client.ev_charger_data(comp_id)
195195

196196
async def _check_inverter_request(
197197
self,
@@ -214,7 +214,7 @@ async def _check_inverter_request(
214214
if comp_id not in self.comp_data_receivers:
215215
self.comp_data_receivers[
216216
comp_id
217-
] = await microgrid_api.get().microgrid_api_client.inverter_data(comp_id)
217+
] = await microgrid.get().api_client.inverter_data(comp_id)
218218

219219
async def _check_meter_request(
220220
self,
@@ -237,7 +237,7 @@ async def _check_meter_request(
237237
if comp_id not in self.comp_data_receivers:
238238
self.comp_data_receivers[
239239
comp_id
240-
] = await microgrid_api.get().microgrid_api_client.meter_data(comp_id)
240+
] = await microgrid.get().api_client.meter_data(comp_id)
241241

242242
async def _check_requested_component_and_metrics(
243243
self,

src/frequenz/sdk/actor/power_distributing.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,14 @@
3535
from google.protobuf.empty_pb2 import Empty # pylint: disable=no-name-in-module
3636

3737
from ..actor._decorator import actor
38+
from ..microgrid import ComponentGraph
3839
from ..microgrid.client import MicrogridApiClient
39-
from ..microgrid.component import Component, ComponentCategory
40-
from ..microgrid.component_data import BatteryData, InverterData
41-
from ..microgrid.graph import ComponentGraph
40+
from ..microgrid.component import (
41+
BatteryData,
42+
Component,
43+
ComponentCategory,
44+
InverterData,
45+
)
4246
from ..power import DistributionAlgorithm, InvBatPair
4347

4448
_logger = logging.getLogger(__name__)

0 commit comments

Comments
 (0)