Skip to content

Commit f64ff51

Browse files
Add tag filter support to gridpool trades stream
- Add `tag` parameter to `gridpool_trades()` method for filtering trades by tag - Update `GridpoolTradeFilter` dataclass to include `tag` field - Update equality and hash methods to include tag field - Update `from_pb()` and `to_pb()` methods to handle tag serialization - Bump frequenz-api-electricity-trading dependency to 0.9.0 - Update import path for PaginationParams to v1alpha8 Signed-off-by: Phillip Wenig <[email protected]>
1 parent fd04aa9 commit f64ff51

File tree

3 files changed

+16
-2
lines changed

3 files changed

+16
-2
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ dependencies = [
4646
"frequenz-channels >= 1.6.1, < 2",
4747
"frequenz-client-base >= 0.11.0, < 0.12.0",
4848
"frequenz-client-common >= 0.1.0, < 0.4.0",
49-
"frequenz-api-electricity-trading >= 0.8.0, < 0.9.0",
49+
"frequenz-api-electricity-trading >= 0.9.0, < 0.10.0",
5050
"protobuf >= 6.31.1, < 8", # Do not widen beyond 8!
5151
]
5252
dynamic = ["version"]

src/frequenz/client/electricity_trading/_client.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from zoneinfo import ZoneInfo
1616

1717
import grpc
18-
from frequenz.api.common.v1.pagination.pagination_params_pb2 import PaginationParams
18+
from frequenz.api.common.v1alpha8.pagination.pagination_params_pb2 import PaginationParams
1919

2020
# pylint: disable=no-member
2121
from frequenz.api.electricity_trading.v1 import (
@@ -343,6 +343,7 @@ def gridpool_trades_stream(
343343
market_side: MarketSide | None = None,
344344
delivery_period: DeliveryPeriod | None = None,
345345
delivery_area: DeliveryArea | None = None,
346+
tag: str | None = None,
346347
) -> GrpcStreamBroadcaster[
347348
electricity_trading_pb2.ReceiveGridpoolTradesStreamResponse, Trade
348349
]:
@@ -356,6 +357,7 @@ def gridpool_trades_stream(
356357
market_side: The market side to filter for.
357358
delivery_period: The delivery period to filter for.
358359
delivery_area: The delivery area to filter for.
360+
tag: The tag to filter for.
359361
360362
Returns:
361363
The gridpool trades streamer.
@@ -371,6 +373,7 @@ def gridpool_trades_stream(
371373
side=market_side,
372374
delivery_period=delivery_period,
373375
delivery_area=delivery_area,
376+
tag=tag,
374377
)
375378

376379
stream_key = (gridpool_id, gridpool_trade_filter)

src/frequenz/client/electricity_trading/_types.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1576,6 +1576,9 @@ class GridpoolTradeFilter:
15761576
delivery_area: DeliveryArea | None = None
15771577
"""Delivery area to filter for."""
15781578

1579+
tag: str | None = None
1580+
"""Tag associated with the trades to be filtered."""
1581+
15791582
def __eq__(self, other: object) -> bool:
15801583
"""
15811584
Check if two GridpoolTradeFilter objects are equal.
@@ -1594,6 +1597,7 @@ def __eq__(self, other: object) -> bool:
15941597
and self.side == other.side
15951598
and self.delivery_period == other.delivery_period
15961599
and self.delivery_area == other.delivery_area
1600+
and self.tag == other.tag
15971601
)
15981602

15991603
def __hash__(self) -> int:
@@ -1610,6 +1614,7 @@ def __hash__(self) -> int:
16101614
self.side,
16111615
self.delivery_period,
16121616
self.delivery_area,
1617+
self.tag,
16131618
)
16141619
)
16151620

@@ -1652,6 +1657,11 @@ def from_pb(
16521657
if gridpool_trade_filter.HasField("delivery_area")
16531658
else None
16541659
),
1660+
tag=(
1661+
gridpool_trade_filter.tag
1662+
if gridpool_trade_filter.HasField("tag")
1663+
else None
1664+
),
16551665
)
16561666

16571667
def to_pb(self) -> electricity_trading_pb2.GridpoolTradeFilter:
@@ -1673,6 +1683,7 @@ def to_pb(self) -> electricity_trading_pb2.GridpoolTradeFilter:
16731683
self.delivery_period.to_pb() if self.delivery_period else None
16741684
),
16751685
delivery_area=self.delivery_area.to_pb() if self.delivery_area else None,
1686+
tag=self.tag if self.tag else None,
16761687
)
16771688

16781689

0 commit comments

Comments
 (0)