PEP 343 has been updated on python.org. Highlights of the changes: - changed the name of the PEP to be simply "The 'with' Statement" - added __with__() method - added section on standard terminology (that is, contexts/context managers) - changed generator context decorator name to "context" - Updated "Resolved Issues" section - updated decimal.Context() example - updated closing() example so it works for objects without close methods I also added a new Open Issues section with the questions: - should the decorator be called "context" or something else, such as the old "contextmanager"? (The PEP currently says "context") - should the decorator be a builtin? (The PEP currently says yes) - should the decorator be applied automatically to generators used to write __with__ methods? (The PEP currently says yes) Cheers, Nick. -- Nick Coghlan | ncoghlan@gmail.com | Brisbane, Australia --------------------------------------------------------------- http://boredomandlaziness.blogspot.com
On 10/16/05, Nick Coghlan <ncoghlan@iinet.net.au> wrote:
PEP 343 has been updated on python.org.
Highlights of the changes:
- changed the name of the PEP to be simply "The 'with' Statement" - added __with__() method - added section on standard terminology (that is, contexts/context managers) - changed generator context decorator name to "context" - Updated "Resolved Issues" section - updated decimal.Context() example - updated closing() example so it works for objects without close methods
I also added a new Open Issues section with the questions:
- should the decorator be called "context" or something else, such as the old "contextmanager"? (The PEP currently says "context") - should the decorator be a builtin? (The PEP currently says yes) - should the decorator be applied automatically to generators used to write __with__ methods? (The PEP currently says yes)
I hope you reverted the status to "Proposed"... On the latter: I think it shouldn't; I don't like this kind of magic. I'll have to read it before I can comment on the rest. -- --Guido van Rossum (home page: http://www.python.org/~guido/)
Guido van Rossum wrote:
On 10/16/05, Nick Coghlan <ncoghlan@iinet.net.au> wrote: I hope you reverted the status to "Proposed"...
I hadn't, but I've now fixed that in CVS (both in the PEP and the PEP index), and added some text into the PEP saying why it was reverted to Draft.
On the latter: I think it shouldn't; I don't like this kind of magic. I'll have to read it before I can comment on the rest.
I don't particularly like treating __with__ specially either, but I'm not sure I like the alternative. The alternative is that we'd never be able to safely define a __with__ method directly on generators - the reason is that we would want a "def __with__" where the @context decorator has been forgotten to trigger a TypeError when it is used. If generator-iterators were to provide a context manager to automatically invoke close(), then leaving out "@context" would result in a very obscure bug (as g.close() would be used to finish the context, instead of g.next() or g.throw()). On the other hand, if the context decorator is invoked automatically when a generator function is supplied to populate the __with__ slot, then using a generator to define a __with__ method will "just work", instead of "only works if you also apply the context decorator" Cheers, Nick. -- Nick Coghlan | ncoghlan@gmail.com | Brisbane, Australia --------------------------------------------------------------- http://boredomandlaziness.blogspot.com
Andrew Koenig wrote:
PEP 343 has been updated on python.org.
Highlights of the changes:
- changed the name of the PEP to be simply "The 'with' Statement"
Do you mean PEP 346, perchance? PEP 343 is something else entirely.
No, I mean PEP 343 - it describes Guido's proposal for a "with" statement. The old name made perfect sense if you'd been part of the PEP 340 discussion, but was rather obscure otherwise. Cheers, Nick. -- Nick Coghlan | ncoghlan@gmail.com | Brisbane, Australia --------------------------------------------------------------- http://boredomandlaziness.blogspot.com
participants (4)
-
Andrew Koenig -
Guido van Rossum -
Nick Coghlan -
Nick Coghlan