3 ms·
You should take a look at AnyIO, which unifies asyncio and Trio (it can use both event loops as a backend). Two big deals of Trio and AnyIO are channels (simil
by linkdd 2y ago
You should take a look at AnyIO, which unifies asyncio and Trio (it can use both event loops as a backend).
Two big deals of Trio and AnyIO are channels (similar to Go's channels), the ability to return data from starting a task in a nursery/task group:
async def my_consumer(task_status = anyio.TASK_STATUS_IGNORED):
tx, rx = anyio.create_memory_object_stream()
task_status.started(tx)
async for message in rx:
...
async def my_producer(tx):
await tx.send("hello")
await tx.send("world")
await tx.aclose()
async def main():
async with anyio.create_task_group() as tg:
tx = await tg.start(my_consumer)
tg.start_soon(my_producer, tx)