Currently you have to do this:
class BrowserStateSummary(BaseModel):
tab_urls: list[str]
...
class BrowserStateRequestEvent(BaseEvent[BrowserStateSummary]):
pass
event: BrowserStateRequestEvent = cast(BrowserStateRequestEvent, self.event_bus.dispatch(
BrowserStateRequestEvent(
include_dom=True,
include_screenshot=include_screenshot,
cache_clickable_elements_hashes=cache_clickable_elements_hashes,
)
))
result: BrowserStateSummary | None = await event.event_result(raise_if_none=True, raise_if_any=True)
But it would be great if EventBus.dispatch(event)'s return type was automatically the same as the input type, instead of returning a BaseEvent[Any].
class BrowserStateSummary(BaseModel):
tab_urls: list[str]
...
class BrowserStateRequestEvent(BaseEvent[BrowserStateSummary]):
pass
- event: BrowserStateRequestEvent = cast(BrowserStateRequestEvent, self.event_bus.dispatch(
+ event: BrowserStateRequestEvent = self.event_bus.dispatch(
BrowserStateRequestEvent(
include_dom=True,
include_screenshot=include_screenshot,
cache_clickable_elements_hashes=cache_clickable_elements_hashes,
)
- ))
+ )
result: BrowserStateSummary | None = await event.event_result(raise_if_none=True, raise_if_any=True)
Currently you have to do this:
But it would be great if
EventBus.dispatch(event)'s return type was automatically the same as the input type, instead of returning aBaseEvent[Any].class BrowserStateSummary(BaseModel): tab_urls: list[str] ... class BrowserStateRequestEvent(BaseEvent[BrowserStateSummary]): pass - event: BrowserStateRequestEvent = cast(BrowserStateRequestEvent, self.event_bus.dispatch( + event: BrowserStateRequestEvent = self.event_bus.dispatch( BrowserStateRequestEvent( include_dom=True, include_screenshot=include_screenshot, cache_clickable_elements_hashes=cache_clickable_elements_hashes, ) - )) + ) result: BrowserStateSummary | None = await event.event_result(raise_if_none=True, raise_if_any=True)