Skip to content

Commit

Permalink
Replace the local PaginationParams type with the `frequenz-client-c…
Browse files Browse the repository at this point in the history
…ommon` one (#58)

* Remove the locally defined `PaginationParams`
* Import `Params` from the common client `frequenz-client-common`
  • Loading branch information
camille-bouvy-frequenz authored Oct 8, 2024
2 parents da41bc8 + 087afd9 commit f163413
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 47 deletions.
1 change: 1 addition & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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",
]
Expand Down
2 changes: 0 additions & 2 deletions src/frequenz/client/electricity_trading/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,6 @@
OrderExecutionOption,
OrderState,
OrderType,
PaginationParams,
Price,
PublicTrade,
PublicTradeFilter,
Expand Down Expand Up @@ -204,7 +203,6 @@
"OrderExecutionOption",
"OrderState",
"OrderType",
"PaginationParams",
"Price",
"PublicTrade",
"PublicTradeFilter",
Expand Down
14 changes: 7 additions & 7 deletions src/frequenz/client/electricity_trading/_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -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 (
Expand All @@ -32,7 +33,6 @@
OrderExecutionOption,
OrderState,
OrderType,
PaginationParams,
Price,
PublicTrade,
PublicTradeFilter,
Expand Down Expand Up @@ -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,
)
Expand All @@ -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,
),
Expand Down Expand Up @@ -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,
)
Expand All @@ -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,
),
Expand Down Expand Up @@ -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,
)
Expand All @@ -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,
),
Expand Down
38 changes: 0 additions & 38 deletions src/frequenz/client/electricity_trading/_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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


Expand Down

0 comments on commit f163413

Please sign in to comment.