[Python-Dev] PEP 334 - Simple Coroutines via SuspendIteration

Phillip J. Eby pje at telecommunity.com
Fri Oct 1 01:17:43 CEST 2004

At 11:36 PM 9/30/04 +0100, Michael Sparks wrote:
>On Thu, 30 Sep 2004, Phillip J. Eby wrote:
> > A mechanism to pass values or exceptions into generators
>[ Possibly somewhat off topic, and apologies if it is, and I'm positive
>   someone's done something similar before, but I think it's relevant to
>   the discussion in hand -- largely because the above use case *doesn't*
>   require changes to python... ]

I know it doesn't; peak.events does this now, but in order to have a decent 
programmer interface, the implementation involves a fair amount of 
magic.  Similarly, PEP 334 doesn't call for anything you can't do with a 
bit of work and magic.  I was suggesting, however, that a true "simple 
co-routine" (similar to a generator but with bidirectional communication of 
values and exceptions) would be a valuable addition to the language, in the 
area of simplifying async programming in e.g. Twisted and peak.events.

To put it another way: Slap the current title of PEP 334 onto the body of 
PEP 288, and change its syntax so you have a way to pass values and 
exceptions *in* to a suspended "coroutine" (a new and different animal from 
a generator), and I'm sold.

More information about the Python-Dev mailing list