You are not appending to the list that's being iterated ;) tasks is an async generator or possibly a custom object that overrides aiter, anext, etc.
I'd say look at internals of aiostream's merge, it should not be too hard to extend perhaps On Wed, 18 Jul 2018 at 9:01 PM, James Stidard <jamesstid...@gmail.com> wrote: > Hi, > > I was wondering if anyone has had experience implementing a similar > pattern to this or has alternative suggestions of how to achieve it. > > I have a bunch of async generators which I’d like to be able to merge into > a single async generator I can iterate over. I found Vincent’s aiostream > library which gives me this without too much effort: > > from asyncio import sleep, run > from aiostream.stream import merge > > async def go(): > yield 0 > await sleep(1) > yield 50 > await sleep(1) > yield 100 > > async def main(): > tasks = merge(go(), go(), go()) > > async for v in tasks: > print(v) > > if __name__ == '__main__': > run(main()) > > However, I also would like to be able to add additional tasks into the > list once I’ve started iterating the list so something more akin to: > > from asyncio import sleep, run > from aiostream.stream import merge > > async def go(): > yield 0 > await sleep(1) > yield 50 > await sleep(1) > yield 100 > > async def main(): > tasks = merge(go(), go(), go()) > > async for v in tasks: > If v == 50: > tasks.merge(go()) > print(v) > > if __name__ == '__main__': > run(main()) > > Has anyone been able to achieve something like this? > > p.s. I know appending to a list you’re iterating is bad practice, I assume > the same would be true modifying this stream object, but think the example > illustrates what I’m trying to achieve. > > Thanks, > James > > > _______________________________________________ > Async-sig mailing list > Async-sig@python.org > https://mail.python.org/mailman/listinfo/async-sig > Code of Conduct: https://www.python.org/psf/codeofconduct/ >
_______________________________________________ Async-sig mailing list Async-sig@python.org https://mail.python.org/mailman/listinfo/async-sig Code of Conduct: https://www.python.org/psf/codeofconduct/