Python 101: iterators, generators, coroutines ? Mark McDonnell