[Python-Dev] Short-circuiting iterators

Raymond Hettinger raymond.hettinger at verizon.net
Wed Dec 7 03:58:50 CET 2005


[Matthew F. Barnes]  
> > > Perhaps it would be a useful addition to the itertools
> > > module then?
> > >
> > >         itertools.interruptable(iterable)

[Raymond Hettinger]
> > Any real-world use cases or compelling contrived examples?

[Simon Wittber]
> I use something like this in the nanothreads module.
> 
> http://metaplay.dyndns.org:8081/svn/fibranet/fibranet/nanothreads.py
> 
> This feature is implemented in the Fibra class, in the end and kill
> methods. It is used to stop an iterator from parts of the code which
> are not part of the loop that is actually iterating the iterator.
> 
> This usage is specific to situations where generators are being used
> as cooperative threads.

Are there any generator specific needs that are not met by the PEP 342
implementation?  Given a choice between throw(), close(), and send(), I
would have thought that all the bases have been covered.


Raymond



More information about the Python-Dev mailing list