Skip to content

Commit 4cc4cea

Browse files
authored
chore: bump frequenz-api-assets to 0.3.0 (#113)
## Summary - bump frequenz-api-assets to 0.3.0 - migrate client imports from assets.v1 to platformassets.v1alpha1 - update request/test fixtures for the PlatformAssetsService API ## Validation - .venv/bin/python -m pytest tests/test_client.py
2 parents 39105aa + fc02e41 commit 4cc4cea

13 files changed

Lines changed: 36 additions & 25 deletions

File tree

RELEASE_NOTES.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88

99
<!-- Here goes notes on how to upgrade from previous versions, including deprecations and what they should be replaced with -->
1010

11+
* Updated `frequenz-api-assets` to `0.3.0`, replacing the old `assets.v1`
12+
generated API with `platformassets.v1alpha1`.
13+
1114
## New Features
1215

1316
<!-- Here goes the main new features and examples or instructions on how to use them -->

pyproject.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,11 @@ classifiers = [
3737
requires-python = ">= 3.11, < 4"
3838
dependencies = [
3939
"typing-extensions >= 4.13.0, < 5",
40-
"frequenz-api-assets >= 0.1.0, < 0.3.0",
41-
"frequenz-api-common >= 0.8.2, < 1",
40+
"frequenz-api-assets >= 0.3.0, < 0.4.0",
41+
"frequenz-api-common >= 0.8.9, < 1",
4242
"frequenz-client-base >= 0.11.0, < 0.12.0",
4343
"frequenz-client-common >= 0.3.6, < 0.4.0",
44-
"grpcio >= 1.73.1, < 2",
44+
"grpcio >= 1.80.0, < 2",
4545
]
4646
dynamic = ["version"]
4747

src/frequenz/client/assets/_client.py

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

1212
from collections.abc import Iterable
1313

14-
from frequenz.api.assets.v1 import assets_pb2, assets_pb2_grpc
14+
from frequenz.api.platformassets.v1alpha1 import (
15+
platformassets_pb2,
16+
platformassets_pb2_grpc,
17+
)
1518
from frequenz.client.base import channel
1619
from frequenz.client.base.client import BaseApiClient, call_stub_method
1720
from frequenz.client.common.microgrid import MicrogridId
@@ -41,7 +44,7 @@
4144

4245

4346
class AssetsApiClient(
44-
BaseApiClient[assets_pb2_grpc.PlatformAssetsStub]
47+
BaseApiClient[platformassets_pb2_grpc.PlatformAssetsServiceStub]
4548
): # pylint: disable=too-many-arguments
4649
"""A client for the Assets API."""
4750

@@ -75,15 +78,15 @@ def __init__(
7578
"""
7679
super().__init__(
7780
server_url,
78-
assets_pb2_grpc.PlatformAssetsStub,
81+
platformassets_pb2_grpc.PlatformAssetsServiceStub,
7982
connect=connect,
8083
channel_defaults=channel_defaults,
8184
auth_key=auth_key,
8285
sign_secret=sign_secret,
8386
)
8487

8588
@property
86-
def stub(self) -> assets_pb2_grpc.PlatformAssetsAsyncStub:
89+
def stub(self) -> platformassets_pb2_grpc.PlatformAssetsServiceAsyncStub:
8790
"""
8891
The gRPC stub for the Assets API.
8992
@@ -127,7 +130,7 @@ async def get_microgrid( # noqa: DOC502,DOC503 (raises indirectly)
127130
response = await call_stub_method(
128131
self,
129132
lambda: self.stub.GetMicrogrid(
130-
assets_pb2.GetMicrogridRequest(microgrid_id=int(microgrid_id)),
133+
platformassets_pb2.GetMicrogridRequest(microgrid_id=int(microgrid_id)),
131134
timeout=DEFAULT_GRPC_CALL_TIMEOUT,
132135
),
133136
method_name="GetMicrogrid",
@@ -179,7 +182,7 @@ async def list_microgrid_electrical_components(
179182
response = await call_stub_method(
180183
self,
181184
lambda: self.stub.ListMicrogridElectricalComponents(
182-
assets_pb2.ListMicrogridElectricalComponentsRequest(
185+
platformassets_pb2.ListMicrogridElectricalComponentsRequest(
183186
microgrid_id=int(microgrid_id),
184187
),
185188
timeout=DEFAULT_GRPC_CALL_TIMEOUT,
@@ -251,11 +254,14 @@ async def list_microgrid_electrical_component_connections(
251254
issues are found. All exceptions in the group are
252255
[InvalidConnectionError][frequenz.client.assets.exceptions.InvalidConnectionError].
253256
"""
254-
request = assets_pb2.ListMicrogridElectricalComponentConnectionsRequest(
257+
source_ids = [int(c) for c in source_component_ids]
258+
destination_ids = [int(c) for c in destination_component_ids]
259+
request = platformassets_pb2.ListMicrogridElectricalComponentConnectionsRequest(
255260
microgrid_id=int(microgrid_id),
256-
source_component_ids=(int(c) for c in source_component_ids),
257-
destination_component_ids=(int(c) for c in destination_component_ids),
258261
)
262+
if source_ids or destination_ids:
263+
request.filter.source_component_ids.extend(source_ids)
264+
request.filter.destination_component_ids.extend(destination_ids)
259265

260266
response = await call_stub_method(
261267
self,

tests/client_test_cases/get_microgrid/defaults_case.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
from typing import Any
88
from unittest.mock import AsyncMock
99

10-
from frequenz.api.assets.v1 import assets_pb2
1110
from frequenz.api.common.v1alpha8.microgrid import microgrid_pb2
11+
from frequenz.api.platformassets.v1alpha1 import platformassets_pb2 as assets_pb2
1212
from frequenz.client.common.microgrid import EnterpriseId, MicrogridId
1313

1414
from frequenz.client.assets import Microgrid, MicrogridStatus

tests/client_test_cases/get_microgrid/error_case.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
from typing import Any
77

8-
from frequenz.api.assets.v1 import assets_pb2
8+
from frequenz.api.platformassets.v1alpha1 import platformassets_pb2 as assets_pb2
99
from grpc import StatusCode
1010

1111
from frequenz.client.assets.exceptions import PermissionDenied

tests/client_test_cases/get_microgrid/full_case.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
from unittest.mock import AsyncMock
99

1010
import pytest
11-
from frequenz.api.assets.v1 import assets_pb2
1211
from frequenz.api.common.v1alpha8.grid import delivery_area_pb2
1312
from frequenz.api.common.v1alpha8.microgrid import microgrid_pb2
1413
from frequenz.api.common.v1alpha8.types import location_pb2
14+
from frequenz.api.platformassets.v1alpha1 import platformassets_pb2 as assets_pb2
1515
from frequenz.client.base.conversion import to_timestamp
1616
from frequenz.client.common.microgrid import EnterpriseId, MicrogridId
1717

tests/client_test_cases/list_microgrid_electrical_component_connections/empty_case.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
from typing import Any
77

8-
from frequenz.api.assets.v1 import assets_pb2
8+
from frequenz.api.platformassets.v1alpha1 import platformassets_pb2 as assets_pb2
99

1010
# No client_args or client_kwargs needed for this call
1111

@@ -14,7 +14,7 @@ def assert_stub_method_call(stub_method: Any) -> None:
1414
"""Assert that the gRPC request matches the expected request."""
1515
stub_method.assert_called_once_with(
1616
assets_pb2.ListMicrogridElectricalComponentConnectionsRequest(
17-
microgrid_id=1234, source_component_ids=[], destination_component_ids=[]
17+
microgrid_id=1234
1818
),
1919
timeout=60.0,
2020
)

tests/client_test_cases/list_microgrid_electrical_component_connections/error_case.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
from typing import Any
77

8-
from frequenz.api.assets.v1 import assets_pb2
8+
from frequenz.api.platformassets.v1alpha1 import platformassets_pb2 as assets_pb2
99
from grpc import StatusCode
1010

1111
from frequenz.client.assets.exceptions import PermissionDenied

tests/client_test_cases/list_microgrid_electrical_component_connections/success_case.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
from datetime import datetime, timezone
77
from typing import Any
88

9-
from frequenz.api.assets.v1 import assets_pb2
109
from frequenz.api.common.v1alpha8.microgrid import lifetime_pb2
1110
from frequenz.api.common.v1alpha8.microgrid.electrical_components import (
1211
electrical_components_pb2,
1312
)
13+
from frequenz.api.platformassets.v1alpha1 import platformassets_pb2 as assets_pb2
1414
from frequenz.client.base.conversion import to_timestamp
1515
from frequenz.client.common.microgrid.electrical_components import ElectricalComponentId
1616

@@ -22,7 +22,7 @@ def assert_stub_method_call(stub_method: Any) -> None:
2222
"""Assert that the gRPC request matches the expected request."""
2323
stub_method.assert_called_once_with(
2424
assets_pb2.ListMicrogridElectricalComponentConnectionsRequest(
25-
microgrid_id=1234, source_component_ids=[], destination_component_ids=[]
25+
microgrid_id=1234
2626
),
2727
timeout=60.0,
2828
)

tests/client_test_cases/list_microgrid_electrical_components/empty_case.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
from typing import Any
77

8-
from frequenz.api.assets.v1 import assets_pb2
8+
from frequenz.api.platformassets.v1alpha1 import platformassets_pb2 as assets_pb2
99

1010

1111
def assert_stub_method_call(stub_method: Any) -> None:

0 commit comments

Comments
 (0)