At 04:48 AM 4/25/2006 +1000, Nick Coghlan wrote: >Wanting to have two names for the same function tells me there's a problem >with the terminology, not that we should actually have two names for the same >function :)
It is purely an implementation detail of @contextmanager that it can be used to define __context__ methods. It would be perfectly legal to implement it in such a way that there were two helper classes, one with a __context__ method, and the other with the __enter__/__exit__ methods. I'm fine, however, with: 1. Changing the decorator name to @contextfactory 2. Requiring objects with __enter/__exit__ to also have __context__ (i.e., keep "context" as a subtype of "contextmanager") The truth is that @contextmanager is a misnomer anyway, because it doesn't turn the function into a context manager, it turns the function into a context factory - i.e., when called, it returns a context (that's also a contextmanager). _______________________________________________ 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