It appears that the contextmanager implementation (both in the stdlib and 
as described in the PEP) doesn't correctly handle the case where the 
generator yields a new value in response to throw().  It responds by 
suppressing the original exception, but IIRC earlier versions of the PEP 
threw a RuntimeError for this scenario.

Unless there are any objections, I'd like to restore this by replacing the 
"return True" that follows the throw(), with:

     raise RuntimeError("generator didn't stop after throw()")

and again, update the PEP accordingly.

_______________________________________________
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

Reply via email to