From e691bc3eca4f7fcea472fb74ddc1b1b40d3c5f35 Mon Sep 17 00:00:00 2001 From: camille-bouvy-frequenz Date: Tue, 8 Oct 2024 17:47:56 +0200 Subject: [PATCH 1/2] Replace the local PaginationParams type with the frequenz-client-common one Signed-off-by: camille-bouvy-frequenz --- pyproject.toml | 1 + .../client/electricity_trading/__init__.py | 2 - .../client/electricity_trading/_client.py | 14 +++---- .../client/electricity_trading/_types.py | 38 ------------------- 4 files changed, 8 insertions(+), 47 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 71a07a2..07aaca0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,6 +32,7 @@ dependencies = [ "grpcio >= 1.66.1, < 2", "frequenz-channels >= 1.0.0, < 2", "frequenz-client-base >= 0.6.1, < 0.7.0", + "frequenz-client-common >= 0.1.0, < 0.3.0", "frequenz-api-electricity-trading >= 0.2.3, < 1", "protobuf >= 5.27.2, < 6", ] diff --git a/src/frequenz/client/electricity_trading/__init__.py b/src/frequenz/client/electricity_trading/__init__.py index ac80f04..762eab0 100644 --- a/src/frequenz/client/electricity_trading/__init__.py +++ b/src/frequenz/client/electricity_trading/__init__.py @@ -176,7 +176,6 @@ OrderExecutionOption, OrderState, OrderType, - PaginationParams, Price, PublicTrade, PublicTradeFilter, @@ -204,7 +203,6 @@ "OrderExecutionOption", "OrderState", "OrderType", - "PaginationParams", "Price", "PublicTrade", "PublicTradeFilter", diff --git a/src/frequenz/client/electricity_trading/_client.py b/src/frequenz/client/electricity_trading/_client.py index 318c8e1..ec1d04a 100644 --- a/src/frequenz/client/electricity_trading/_client.py +++ b/src/frequenz/client/electricity_trading/_client.py @@ -18,6 +18,7 @@ from frequenz.channels import Receiver from frequenz.client.base.client import BaseApiClient from frequenz.client.base.streaming import GrpcStreamBroadcaster +from frequenz.client.common.pagination import Params from google.protobuf import field_mask_pb2, struct_pb2 from ._types import ( @@ -32,7 +33,6 @@ OrderExecutionOption, OrderState, OrderType, - PaginationParams, Price, PublicTrade, PublicTradeFilter, @@ -725,7 +725,7 @@ async def list_gridpool_orders( tag=tag, ) - pagination_params = PaginationParams( + pagination_params = Params( page_size=max_nr_orders, page_token=page_token, ) @@ -737,7 +737,7 @@ async def list_gridpool_orders( electricity_trading_pb2.ListGridpoolOrdersRequest( gridpool_id=gridpool_id, filter=gridpool_order_filer.to_pb(), - pagination_params=pagination_params.to_pb(), + pagination_params=pagination_params.to_proto(), ), metadata=self._metadata, ), @@ -797,7 +797,7 @@ async def list_gridpool_trades( delivery_area=delivery_area, ) - pagination_params = PaginationParams( + pagination_params = Params( page_size=max_nr_trades, page_token=page_token, ) @@ -809,7 +809,7 @@ async def list_gridpool_trades( electricity_trading_pb2.ListGridpoolTradesRequest( gridpool_id=gridpool_id, filter=gridpool_trade_filter.to_pb(), - pagination_params=pagination_params.to_pb(), + pagination_params=pagination_params.to_proto(), ), metadata=self._metadata, ), @@ -854,7 +854,7 @@ async def list_public_trades( sell_delivery_area=sell_delivery_area, ) - pagination_params = PaginationParams( + pagination_params = Params( page_size=max_nr_trades, page_token=page_token, ) @@ -865,7 +865,7 @@ async def list_public_trades( self.stub.ListPublicTrades( electricity_trading_pb2.ListPublicTradesRequest( filter=public_trade_filter.to_pb(), - pagination_params=pagination_params.to_pb(), + pagination_params=pagination_params.to_proto(), ), metadata=self._metadata, ), diff --git a/src/frequenz/client/electricity_trading/_types.py b/src/frequenz/client/electricity_trading/_types.py index f7b1266..d0a36ac 100644 --- a/src/frequenz/client/electricity_trading/_types.py +++ b/src/frequenz/client/electricity_trading/_types.py @@ -17,7 +17,6 @@ # pylint: disable=no-member from frequenz.api.common.v1.grid import delivery_area_pb2, delivery_duration_pb2 from frequenz.api.common.v1.market import energy_pb2, price_pb2 -from frequenz.api.common.v1.pagination import pagination_params_pb2 from frequenz.api.common.v1.types import decimal_pb2 from frequenz.api.electricity_trading.v1 import electricity_trading_pb2 from google.protobuf import json_format, struct_pb2, timestamp_pb2 @@ -411,43 +410,6 @@ def to_pb(self) -> delivery_duration_pb2.DeliveryPeriod: ) -@dataclass(frozen=True) -class PaginationParams: - """Parameters for paginating list requests.""" - - page_size: int | None = None - """The maximum number of results to be returned per request.""" - - page_token: str | None = None - """The token identifying a specific page of the list results.""" - - @classmethod - def from_pb(cls, pagination_params: pagination_params_pb2.PaginationParams) -> Self: - """Convert a protobuf PaginationParams to PaginationParams object. - - Args: - pagination_params: PaginationParams to convert. - - Returns: - PaginationParams object corresponding to the protobuf message. - """ - return cls( - page_size=pagination_params.page_size, - page_token=pagination_params.page_token, - ) - - def to_pb(self) -> pagination_params_pb2.PaginationParams: - """Convert a PaginationParams object to protobuf PaginationParams. - - Returns: - Protobuf message corresponding to the PaginationParams object. - """ - return pagination_params_pb2.PaginationParams( - page_size=self.page_size, - page_token=self.page_token, - ) - - # From electricity trading api From 087afd9ffe238eac39c98c17332ead6b5c3c58bc Mon Sep 17 00:00:00 2001 From: camille-bouvy-frequenz Date: Tue, 8 Oct 2024 17:48:37 +0200 Subject: [PATCH 2/2] Update Release Notes Signed-off-by: camille-bouvy-frequenz --- RELEASE_NOTES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 9b310f2..15ba2b2 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -13,6 +13,7 @@ * Replace assert statements with proper exception handling * Implement client instance reuse to avoid redundant TCP connections * Move documentation and code examples to the documentation website +* Replace the local `PaginationParams` type with the `frequenz-client-common` one ## Bug Fixes