OpenHands / openhands /events /async_event_store_wrapper.py
Backup-bdg's picture
Upload 964 files
51ff9e5 verified
raw
history blame contribute delete
790 Bytes
import asyncio
from typing import Any, AsyncIterator
from openhands.events.event import Event
from openhands.events.event_store import EventStore
class AsyncEventStoreWrapper:
def __init__(self, event_store: EventStore, *args: Any, **kwargs: Any) -> None:
self.event_store = event_store
self.args = args
self.kwargs = kwargs
async def __aiter__(self) -> AsyncIterator[Event]:
loop = asyncio.get_running_loop()
# Create an async generator that yields events
for event in self.event_store.get_events(*self.args, **self.kwargs):
# Run the blocking get_events() in a thread pool
def get_event(e: Event = event) -> Event:
return e
yield await loop.run_in_executor(None, get_event)