Generators were a compelling feature when added to Python 2.2 in seventeen years ago with PEP-255. When they were enhanced to become coroutines with PEP-342, they gained additional capabilities for modelling common problems.
But, surprisingly, we don't often see generators discussed as a core tool in the data scientist, computational scientist, and data engineer's toolkit. Why not?
What originally made generators a compelling tool, and what makes them a useful tool today for solving a certain class of problems?
Beyond simple stream manipulation functions, how can generators fit into the data scientist, computational scientist, and data engineer's toolkit. What problems can they solve? What problems do they struggle solving?
And how can we look beyond the superficial features of generators to discover more powerful APIs and frameworks that might prove and novel?