Can somebody confirm the following behavior is expected: When a 'with' statement invokes __exit__(), it looks like sys.exc_info() is not actually set. I know this may be a very pedantic detail, but I'm working on IronPython and would like to make it consistent with CPython's behavior. The PEP (http://www.python.org/dev/peps/pep-0343/ ) says that 'With' can be substituted as follows: mgr = (EXPR) exit = mgr.__exit__ # Not calling it yet value = mgr.__enter__() exc = True try: try: VAR = value # Only if "as VAR" is present BLOCK except: # The exceptional case is handled here exc = False if not exit(*sys.exc_info()): raise # The exception is swallowed if exit() returns true finally: # The normal and non-local-goto cases are handled here if exc: exit(None, None, None) and that "The details of the above translation are intended to prescribe the exact semantics.". This implies that sys.exc_info() would be set when exit is invoked. I'm finding in practice that sys.exc_info() is not set when __exit__() is invoked in the exceptional case. I attached a simple repro (repro.py) to demonstrate exactly what I mean. Can somebody confirm this is the expected behavior? Thanks, Mike http://blogs.msdn.com/jmstall -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/python-dev/attachments/20071218/98926379/attachment.htm -------------- next part -------------- A non-text attachment was scrubbed... Name: repro.py Type: application/octet-stream Size: 1475 bytes Desc: repro.py Url : http://mail.python.org/pipermail/python-dev/attachments/20071218/98926379/attachment.obj
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