At 07:21 PM 01/20/2006 +1000, Nick Coghlan wrote: >Yeah, it came up in response to PJE's suggestion of task-local variables for >generators. The basic concept we came up with is that if you're writing a >generator that uses a specific context, remember to save the original and >restore it around any calls to yield (at least, I came up with the idea and >no-one objected to the approach [1]). That's only because Guido shut down the thread. :) For the use cases I had in mind, your approach simply doesn't scale, because it requires every yield-point to have global knowledge of all "changes to global state" that may have occurred somewhere above it in the coroutine call stack. The only reason I didn't point this out is that Guido had asked for a postponement of the discussion. Since then, I've begun implementing a library that accomodates such use cases, as well as a wide variety of other context-management use cases. Source code is at http://svn.eby-sarna.com/Contextual/ and the docs are at http://svn.eby-sarna.com/Contextual/context.txt?view=markup The library uses the current draft of PEP 343 as the basis for implementation, and includes a few helper functions that can be used to emulate the "with:" statement in Python 2.4 so that it can be used and tested. So far, my impression is that the current 343 spec is at least adequate, and maybe even elegant.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4