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
1 change: 1 addition & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@
## Bug Fixes

* Fix that duration=0 was sent & received as None.
* Fix that `dispatch-cli stream` would try to print an event as dispatch, causing an exception.
11 changes: 8 additions & 3 deletions src/frequenz/client/dispatch/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

import asyncclick as click
import grpc
from frequenz.channels import Receiver
from prompt_toolkit import PromptSession
from prompt_toolkit.completion import NestedCompleter
from prompt_toolkit.history import FileHistory
Expand All @@ -26,7 +27,7 @@
)
from ._client import Client
from .recurrence import EndCriteria, Frequency, RecurrenceRule, Weekday
from .types import Dispatch
from .types import Dispatch, DispatchEvent

DEFAULT_DISPATCH_API_URL = "grpc://fz-0004.frequenz.io:50051"

Expand Down Expand Up @@ -249,11 +250,15 @@ async def list_(ctx: click.Context, /, **filters: Any) -> None:
@click.argument("microgrid-id", required=True, type=int)
async def stream(ctx: click.Context, microgrid_id: int) -> None:
"""Stream dispatches."""
async for message in ctx.obj["client"].stream(microgrid_id=microgrid_id):
event_stream: Receiver[DispatchEvent] = ctx.obj["client"].stream(
microgrid_id=microgrid_id
)
async for message in event_stream:
if ctx.obj["raw"]:
click.echo(pformat(message, compact=True))
else:
print_dispatch(message)
print(f"Dispatch {message.event.name.lower()}")
print_dispatch(message.dispatch)


def parse_recurrence(kwargs: dict[str, Any]) -> RecurrenceRule | None:
Expand Down