How can I use async generator expressions

I am trying to replicate the following from PEP 530

generator expression: (i ** 2 async for i in agen()).

with the following code:

import asyncio
async def agen():
    for x in range(5):
         yield x
async def main():
    x = tuple(i ** 2 async for i in agen())
    print(x)
asyncio.run(main())

but I get TypeError: 'async_generator' object is not iterable. If I do x = [i ** 2 async for i in agen()] works well.

I understand that the faulty statement is equivalent of tuple(agen()). Then, how / when am I expected to use async generator expressions? Could I get an example?

Thank you!

Similar to: https://bugs.python.org/issue32113

Marco Ippolito

maroloccio@gmail.com