3636from frequenz .client .base .exception import ClientNotConnected
3737from frequenz .client .base .retry import LinearBackoff
3838from frequenz .client .base .streaming import GrpcStreamBroadcaster
39+ from frequenz .client .common .microgrid import MicrogridId
3940
4041from ._internal_types import DispatchCreateRequest
4142from .recurrence import RecurrenceRule
4243from .types import (
4344 Dispatch ,
4445 DispatchEvent ,
46+ DispatchId ,
4547 TargetComponents ,
4648 _target_components_to_protobuf ,
4749)
@@ -114,7 +116,7 @@ def stub(self) -> dispatch_pb2_grpc.MicrogridDispatchServiceAsyncStub:
114116 # pylint: disable=too-many-arguments, too-many-locals
115117 async def list (
116118 self ,
117- microgrid_id : int ,
119+ microgrid_id : MicrogridId ,
118120 * ,
119121 target_components : Iterator [TargetComponents ] = iter (()),
120122 start_from : datetime | None = None ,
@@ -185,7 +187,7 @@ def to_interval(
185187 )
186188
187189 request = ListMicrogridDispatchesRequest (
188- microgrid_id = microgrid_id ,
190+ microgrid_id = int ( microgrid_id ) ,
189191 filter = filters ,
190192 pagination_params = (
191193 PaginationParams (page_size = page_size ) if page_size else None
@@ -211,7 +213,7 @@ def to_interval(
211213 else :
212214 break
213215
214- def stream (self , microgrid_id : int ) -> channels .Receiver [DispatchEvent ]:
216+ def stream (self , microgrid_id : MicrogridId ) -> channels .Receiver [DispatchEvent ]:
215217 """Receive a stream of dispatch events.
216218
217219 This function returns a receiver channel that can be used to receive
@@ -238,7 +240,7 @@ def stream(self, microgrid_id: int) -> channels.Receiver[DispatchEvent]:
238240 return self ._get_stream (microgrid_id ).new_receiver ()
239241
240242 def _get_stream (
241- self , microgrid_id : int
243+ self , microgrid_id : MicrogridId
242244 ) -> GrpcStreamBroadcaster [StreamMicrogridDispatchesResponse , DispatchEvent ]:
243245 """Get an instance to the streaming helper."""
244246 broadcaster = self ._streams .get (microgrid_id )
@@ -248,7 +250,7 @@ def _get_stream(
248250 del self ._streams [microgrid_id ]
249251 broadcaster = None
250252 if broadcaster is None :
251- request = StreamMicrogridDispatchesRequest (microgrid_id = microgrid_id )
253+ request = StreamMicrogridDispatchesRequest (microgrid_id = int ( microgrid_id ) )
252254 broadcaster = GrpcStreamBroadcaster (
253255 stream_name = "StreamMicrogridDispatches" ,
254256 stream_method = lambda : cast (
@@ -268,7 +270,7 @@ def _get_stream(
268270
269271 async def create ( # pylint: disable=too-many-positional-arguments
270272 self ,
271- microgrid_id : int ,
273+ microgrid_id : MicrogridId ,
272274 type : str , # pylint: disable=redefined-builtin
273275 start_time : datetime | Literal ["NOW" ],
274276 duration : timedelta | None ,
@@ -336,8 +338,8 @@ async def create( # pylint: disable=too-many-positional-arguments
336338 async def update (
337339 self ,
338340 * ,
339- microgrid_id : int ,
340- dispatch_id : int ,
341+ microgrid_id : MicrogridId ,
342+ dispatch_id : DispatchId ,
341343 new_fields : dict [str , Any ],
342344 ) -> Dispatch :
343345 """Update a dispatch.
@@ -425,7 +427,9 @@ async def update(
425427
426428 return Dispatch .from_protobuf (response .dispatch )
427429
428- async def get (self , * , microgrid_id : int , dispatch_id : int ) -> Dispatch :
430+ async def get (
431+ self , * , microgrid_id : MicrogridId , dispatch_id : DispatchId
432+ ) -> Dispatch :
429433 """Get a dispatch.
430434
431435 Args:
@@ -436,7 +440,7 @@ async def get(self, *, microgrid_id: int, dispatch_id: int) -> Dispatch:
436440 Dispatch: The dispatch.
437441 """
438442 request = GetMicrogridDispatchRequest (
439- dispatch_id = dispatch_id , microgrid_id = microgrid_id
443+ dispatch_id = int ( dispatch_id ) , microgrid_id = int ( microgrid_id )
440444 )
441445 response = await cast (
442446 Awaitable [GetMicrogridDispatchResponse ],
@@ -446,15 +450,17 @@ async def get(self, *, microgrid_id: int, dispatch_id: int) -> Dispatch:
446450 )
447451 return Dispatch .from_protobuf (response .dispatch )
448452
449- async def delete (self , * , microgrid_id : int , dispatch_id : int ) -> None :
453+ async def delete (
454+ self , * , microgrid_id : MicrogridId , dispatch_id : DispatchId
455+ ) -> None :
450456 """Delete a dispatch.
451457
452458 Args:
453459 microgrid_id: The microgrid_id to delete the dispatch for.
454460 dispatch_id: The dispatch_id to delete.
455461 """
456462 request = DeleteMicrogridDispatchRequest (
457- dispatch_id = dispatch_id , microgrid_id = microgrid_id
463+ dispatch_id = int ( dispatch_id ) , microgrid_id = int ( microgrid_id )
458464 )
459465 await cast (
460466 Awaitable [None ],
0 commit comments