Nick Coghlan <ncogh...@gmail.com> added the comment:

Reopening as a reminder to myself that I have a new PEP I want to write in this 
area. The idea is essentially a lighter weight alternative to PEP 377 that adds 
an optional __entered__ method to the context management protocol along the 
following lines:

_v = cm.__enter__()
try:
  if hasattr(cm, "__entered__"):
    VAL = cm.__entered__(_v)
  else:
    VAL = _v
  # do stuff
finally:
  cm.__exit__(*exception_status)

Providing a second, optional method that is executed *inside* the body will let 
CMs do things they can't do now (like skip the body of the with statement) 
without significantly affecting the behaviour of normal CMs. Notably, 
GeneratorContextManager will be able to use this to more gracefully handle the 
case where the generator doesn't yield a value.

I plan to flesh this out into a python-ideas post (and likely a subsequent PEP) 
at some point in the next few months.

----------
components: +Interpreter Core -Documentation
resolution: out of date -> postponed
status: closed -> open
versions: +Python 3.3 -Python 2.7, Python 3.1, Python 3.2

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue5251>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to