At 10:40 PM 10/20/2005 +1000, Nick Coghlan wrote: >Phillip J. Eby wrote: > > This is still rather rough, but I figured it's easier to let everybody > fill > > in the remaining gaps by arguments than it is for me to pick a position I > > like and try to convince everybody else that it's right. :) Your > feedback > > is requested and welcome. > >I think you're actually highlighting a bigger issue with the behaviour of >"yield" inside a "with" block, and working around it rather than fixing the >fundamental problem. > >The issue with "yield" causing changes to leak to outer scopes isn't limited >to coroutine style usage - it can happen with generator-iterators, too. > >What's missing is a general way of saying "suspend this context temporarily, >and resume it when done".
Actually, it's fairly simple to write a generator decorator using context.swap() that saves and restores the current execution state around next()/send()/throw() calls, if you prefer it to be the generator's responsibility to maintain such context. _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com