1. Pub Pusher
Publish an event returned by an action and look up its state.
Source
"""Publish an event returned by an action and look up its state."""
import asyncio
from fastsprout.events import Event, EventBus, EventState, pub
bus = EventBus()
class HeroEvent(Event):
name: str
power: str
@pub(bus=bus)
async def return_hero() -> HeroEvent:
return HeroEvent(name="Spider-Man", power="spider")
async def main():
e = await return_hero()
event_state: EventState[HeroEvent] | None = await bus.get(e)
print("Event State:", event_state)
asyncio.run(main())