Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@

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

* Updated `frequenz-api-assets` to `0.3.0`, replacing the old `assets.v1`
generated API with `platformassets.v1alpha1`.

## New Features

<!-- Here goes the main new features and examples or instructions on how to use them -->
Expand Down
6 changes: 3 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,11 @@ classifiers = [
requires-python = ">= 3.11, < 4"
dependencies = [
"typing-extensions >= 4.13.0, < 5",
"frequenz-api-assets >= 0.1.0, < 0.3.0",
"frequenz-api-common >= 0.8.2, < 1",
"frequenz-api-assets >= 0.3.0, < 0.4.0",
"frequenz-api-common >= 0.8.9, < 1",
"frequenz-client-base >= 0.11.0, < 0.12.0",
"frequenz-client-common >= 0.3.6, < 0.4.0",
"grpcio >= 1.73.1, < 2",
"grpcio >= 1.80.0, < 2",
]
dynamic = ["version"]

Expand Down
24 changes: 15 additions & 9 deletions src/frequenz/client/assets/_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@

from collections.abc import Iterable

from frequenz.api.assets.v1 import assets_pb2, assets_pb2_grpc
from frequenz.api.platformassets.v1alpha1 import (
platformassets_pb2,
platformassets_pb2_grpc,
)
from frequenz.client.base import channel
from frequenz.client.base.client import BaseApiClient, call_stub_method
from frequenz.client.common.microgrid import MicrogridId
Expand Down Expand Up @@ -41,7 +44,7 @@


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

Expand Down Expand Up @@ -75,15 +78,15 @@ def __init__(
"""
super().__init__(
server_url,
assets_pb2_grpc.PlatformAssetsStub,
platformassets_pb2_grpc.PlatformAssetsServiceStub,
connect=connect,
channel_defaults=channel_defaults,
auth_key=auth_key,
sign_secret=sign_secret,
)

@property
def stub(self) -> assets_pb2_grpc.PlatformAssetsAsyncStub:
def stub(self) -> platformassets_pb2_grpc.PlatformAssetsServiceAsyncStub:
"""
The gRPC stub for the Assets API.

Expand Down Expand Up @@ -127,7 +130,7 @@ async def get_microgrid( # noqa: DOC502,DOC503 (raises indirectly)
response = await call_stub_method(
self,
lambda: self.stub.GetMicrogrid(
assets_pb2.GetMicrogridRequest(microgrid_id=int(microgrid_id)),
platformassets_pb2.GetMicrogridRequest(microgrid_id=int(microgrid_id)),
timeout=DEFAULT_GRPC_CALL_TIMEOUT,
),
method_name="GetMicrogrid",
Expand Down Expand Up @@ -179,7 +182,7 @@ async def list_microgrid_electrical_components(
response = await call_stub_method(
self,
lambda: self.stub.ListMicrogridElectricalComponents(
assets_pb2.ListMicrogridElectricalComponentsRequest(
platformassets_pb2.ListMicrogridElectricalComponentsRequest(
microgrid_id=int(microgrid_id),
),
timeout=DEFAULT_GRPC_CALL_TIMEOUT,
Expand Down Expand Up @@ -251,11 +254,14 @@ async def list_microgrid_electrical_component_connections(
issues are found. All exceptions in the group are
[InvalidConnectionError][frequenz.client.assets.exceptions.InvalidConnectionError].
"""
request = assets_pb2.ListMicrogridElectricalComponentConnectionsRequest(
source_ids = [int(c) for c in source_component_ids]
destination_ids = [int(c) for c in destination_component_ids]
request = platformassets_pb2.ListMicrogridElectricalComponentConnectionsRequest(
microgrid_id=int(microgrid_id),
source_component_ids=(int(c) for c in source_component_ids),
destination_component_ids=(int(c) for c in destination_component_ids),
)
if source_ids or destination_ids:
request.filter.source_component_ids.extend(source_ids)
request.filter.destination_component_ids.extend(destination_ids)

response = await call_stub_method(
self,
Expand Down
2 changes: 1 addition & 1 deletion tests/client_test_cases/get_microgrid/defaults_case.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
from typing import Any
from unittest.mock import AsyncMock

from frequenz.api.assets.v1 import assets_pb2
from frequenz.api.common.v1alpha8.microgrid import microgrid_pb2
from frequenz.api.platformassets.v1alpha1 import platformassets_pb2 as assets_pb2
from frequenz.client.common.microgrid import EnterpriseId, MicrogridId

from frequenz.client.assets import Microgrid, MicrogridStatus
Expand Down
2 changes: 1 addition & 1 deletion tests/client_test_cases/get_microgrid/error_case.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

from typing import Any

from frequenz.api.assets.v1 import assets_pb2
from frequenz.api.platformassets.v1alpha1 import platformassets_pb2 as assets_pb2
from grpc import StatusCode

from frequenz.client.assets.exceptions import PermissionDenied
Expand Down
2 changes: 1 addition & 1 deletion tests/client_test_cases/get_microgrid/full_case.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
from unittest.mock import AsyncMock

import pytest
from frequenz.api.assets.v1 import assets_pb2
from frequenz.api.common.v1alpha8.grid import delivery_area_pb2
from frequenz.api.common.v1alpha8.microgrid import microgrid_pb2
from frequenz.api.common.v1alpha8.types import location_pb2
from frequenz.api.platformassets.v1alpha1 import platformassets_pb2 as assets_pb2
from frequenz.client.base.conversion import to_timestamp
from frequenz.client.common.microgrid import EnterpriseId, MicrogridId

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

from typing import Any

from frequenz.api.assets.v1 import assets_pb2
from frequenz.api.platformassets.v1alpha1 import platformassets_pb2 as assets_pb2

# No client_args or client_kwargs needed for this call

Expand All @@ -14,7 +14,7 @@ def assert_stub_method_call(stub_method: Any) -> None:
"""Assert that the gRPC request matches the expected request."""
stub_method.assert_called_once_with(
assets_pb2.ListMicrogridElectricalComponentConnectionsRequest(
microgrid_id=1234, source_component_ids=[], destination_component_ids=[]
microgrid_id=1234
),
timeout=60.0,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

from typing import Any

from frequenz.api.assets.v1 import assets_pb2
from frequenz.api.platformassets.v1alpha1 import platformassets_pb2 as assets_pb2
from grpc import StatusCode

from frequenz.client.assets.exceptions import PermissionDenied
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
from datetime import datetime, timezone
from typing import Any

from frequenz.api.assets.v1 import assets_pb2
from frequenz.api.common.v1alpha8.microgrid import lifetime_pb2
from frequenz.api.common.v1alpha8.microgrid.electrical_components import (
electrical_components_pb2,
)
from frequenz.api.platformassets.v1alpha1 import platformassets_pb2 as assets_pb2
from frequenz.client.base.conversion import to_timestamp
from frequenz.client.common.microgrid.electrical_components import ElectricalComponentId

Expand All @@ -22,7 +22,7 @@ def assert_stub_method_call(stub_method: Any) -> None:
"""Assert that the gRPC request matches the expected request."""
stub_method.assert_called_once_with(
assets_pb2.ListMicrogridElectricalComponentConnectionsRequest(
microgrid_id=1234, source_component_ids=[], destination_component_ids=[]
microgrid_id=1234
),
timeout=60.0,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

from typing import Any

from frequenz.api.assets.v1 import assets_pb2
from frequenz.api.platformassets.v1alpha1 import platformassets_pb2 as assets_pb2


def assert_stub_method_call(stub_method: Any) -> None:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

from typing import Any

from frequenz.api.assets.v1 import assets_pb2
from frequenz.api.platformassets.v1alpha1 import platformassets_pb2 as assets_pb2
from grpc import StatusCode

from frequenz.client.assets.exceptions import PermissionDenied
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@

from typing import Any

from frequenz.api.assets.v1 import assets_pb2
from frequenz.api.common.v1alpha8.microgrid.electrical_components import (
electrical_components_pb2,
)
from frequenz.api.platformassets.v1alpha1 import platformassets_pb2 as assets_pb2
from frequenz.client.common.microgrid import MicrogridId
from frequenz.client.common.microgrid.electrical_components import ElectricalComponentId

Expand Down
6 changes: 4 additions & 2 deletions tests/test_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from pathlib import Path

import pytest
from frequenz.api.assets.v1 import assets_pb2_grpc
from frequenz.api.platformassets.v1alpha1 import platformassets_pb2_grpc

from frequenz.client.assets import AssetsApiClient

Expand All @@ -21,7 +21,9 @@
@pytest.fixture
async def client() -> AsyncIterator[AssetsApiClient]:
"""Fixture that provides a AssetsApiClient with a mock gRPC stub and channel."""
with patch_client_class(AssetsApiClient, assets_pb2_grpc.PlatformAssetsStub):
with patch_client_class(
AssetsApiClient, platformassets_pb2_grpc.PlatformAssetsServiceStub
):
client = AssetsApiClient("grpc://localhost:1234")
async with client:
yield client
Expand Down
Loading