PEP 525 describes asynchronous iterators, a merging of iterators with async functionality. Python 3.6 makes legal constructs such as
async for event in peer.event_iterator:
await process_event(event)
which is a huge improvement over using async.Queue
objects which have no built-in way to determine "end-of-stream" conditions.
This module implements some patterns useful for python asynchronous iterators.
Documentation available on readthedocs.io.
A tutorial is available. github version
CAVEAT This project is still in its infancy, and I reserve the right to rename things and cause other breaking changes.