New submission from Jason R. Coombs: Consider this script, which runs successfully on Python 3:
import cgitb import sys def fiter(): assert False yield 1, 1 yield 2, 2 yield 3, 3 try: x = set(id_ for id_, _ in fiter()) except: print cgitb.html(sys.exc_info()) Run the same script on Python 2.7.13 and you get this error: Traceback (most recent call last): File "test.py", line 15, in <module> print(cgitb.html(sys.exc_info())) File ".../cgitb.py", line 130, in html formatvalue=lambda value: '=' + pydoc.html.repr(value)) File ".../inspect.py", line 887, in formatargvalues specs.append(strseq(args[i], convert, join)) File ".../inspect.py", line 840, in strseq return join(map(lambda o, c=convert, j=join: strseq(o, c, j), object)) File ".../inspect.py", line 840, in <lambda> return join(map(lambda o, c=convert, j=join: strseq(o, c, j), object)) File ".../inspect.py", line 842, in strseq return convert(object) File ".../inspect.py", line 884, in convert return formatarg(name) + formatvalue(locals[name]) KeyError: 'id_' Wrap the generator expression in [] and it also succeeds. Given that the issue only exists on Python 2.7, it may not need to be addressed, but I wanted to log the issue nonetheless. ---------- components: Interpreter Core, Library (Lib) messages: 298314 nosy: jason.coombs priority: normal severity: normal status: open title: KeyError with cgitb inspecting exception in generator expression versions: Python 2.7 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue30926> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com