On Wed, Nov 30, 2016 at 12:53 AM, Marko Rauhamaa <ma...@pacujo.net> wrote: > I have a couple of points to make with my question: > > * We are seeing the reduplication of a large subset of Python's > facilities. I really wonder if the coroutine fad is worth the price.
I don't think there's any technical reason why functions like zip can't support both synchronous and asynchronous iterators. For example: _zip = __builtins__.zip _azip = (some asynchronous zip implementation) class zip: def __init__(self, *args): self._args = args def __iter__(self): return _zip(*self._args) def __aiter__(self): return _azip(*self._args) Now I can do "for x, y in zip(a, b)" or "async for x, y in zip(async_a, async_b)" and either will work as expected. Of course, if you use the wrong construct then you'll probably get an error since the underlying iterators don't support the protocol. But it keeps the builtin namespace simple and clean. -- https://mail.python.org/mailman/listinfo/python-list