This is pretty much what I’d expect the yield from to do. The synchronous generator should deal with the exception in the same way it deals with any unknown exception.
I’ll probably want synchronous delegation at some point (if the PEP is accepted).
A sync gen → async gen transformation should be doable in user space, so I’m fine with disallowing sync delegation this for now. But I’d like if the door was kept open here.
So, I’m for async yield from. It also plays well with recent SC opinion:
Today every line performing asynchronous work [uses]
asyncorawait[…], which is a property readers and static analysis tools often rely on.
I might need that if I’ll be writing async yield from ensure_asyncgen(syncgen) :)
But I don’t agree with the general idea. Each special tool or setup that we take for granted makes the language harder to use.