Q: Delegating to async subgenerators PEP 380 introduced yield from to let a generator delegate to a subgenerator.
Notably, send(), throw() or close() calls on the delegating generator will be forwarded to the subgenerator:
def gen1():
    res = yield 1
    print('Received:', res)
    res = yield 2

def gen2():
    yield from gen1()

g = gen2()
print(g.send(None))
print(g.send('msg1'))

prints
1
Received: msg1
2

PEP 525 introduced asynchronous generators, which are able to await on async coroutines and yield results that can be awaited by the consumer. Like generators, async generators can also receive values sent using asend() (and support athrow()/aclose()).
Is there a way to delegate to async subgenerators? The following does not work: the subgenerator doesn't receive the sent value, because asend() is not forwarded. It could be done manually in agen2, but yield from has spoiled us with its simplicity. Does anything like async yield from exist?
async def agen1():
    res = yield 1
    print('Received:', res)
    res = yield 2

async def agen2():
    async for x in agen1():
        yield x

async def consumer():
    ag = agen2()
    print(await ag.asend(None))
    print(await ag.asend('msg1'))

import asyncio
asyncio.run(consumer())

Output:
1
Received: None
2


A: No.
According to PEP 525 https://www.python.org/dev/peps/pep-0525/#asynchronous-yield-from async yield from "would require a serious redesign of the generators implementation."
