summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTerry Jan Reedy <tjreedy@udel.edu>2017-12-04 21:16:18 (GMT)
committerGitHub <noreply@github.com>2017-12-04 21:16:18 (GMT)
commit1e2fcac4972530aa2c963d7e4011021df5ba866e (patch)
treea34302b6c33d65cc9537719db5225ace919b1863
parent21255fc3932a60c064f85c0fe68f2840f390ebe4 (diff)
downloadcpython-1e2fcac4972530aa2c963d7e4011021df5ba866e.zip
cpython-1e2fcac4972530aa2c963d7e4011021df5ba866e.tar.gz
cpython-1e2fcac4972530aa2c963d7e4011021df5ba866e.tar.bz2
bpo-32207: Improve tk event exception tracebacks in IDLE. (#4703)
When tk event handling is driven by IDLE's run loop, a confusing and distracting queue.EMPTY traceback context is no longer added to tk event exception tracebacks. The traceback is now the same as when event handling is driven by user code. Patch based on a suggestion by Serhiy Storchaka.
-rw-r--r--Lib/idlelib/run.py14
-rw-r--r--Misc/NEWS.d/next/IDLE/2017-12-04-15-04-43.bpo-32207.IzyAJo.rst6
2 files changed, 15 insertions, 5 deletions
diff --git a/Lib/idlelib/run.py b/Lib/idlelib/run.py
index 6440e67..176fe3d 100644
--- a/Lib/idlelib/run.py
+++ b/Lib/idlelib/run.py
@@ -134,13 +134,17 @@ def main(del_exitfunc=False):
# exiting but got an extra KBI? Try again!
continue
try:
- seq, request = rpc.request_queue.get(block=True, timeout=0.05)
+ request = rpc.request_queue.get(block=True, timeout=0.05)
except queue.Empty:
+ request = None
+ # Issue 32207: calling handle_tk_events here adds spurious
+ # queue.Empty traceback to event handling exceptions.
+ if request:
+ seq, (method, args, kwargs) = request
+ ret = method(*args, **kwargs)
+ rpc.response_queue.put((seq, ret))
+ else:
handle_tk_events()
- continue
- method, args, kwargs = request
- ret = method(*args, **kwargs)
- rpc.response_queue.put((seq, ret))
except KeyboardInterrupt:
if quitting:
exit_now = True
diff --git a/Misc/NEWS.d/next/IDLE/2017-12-04-15-04-43.bpo-32207.IzyAJo.rst b/Misc/NEWS.d/next/IDLE/2017-12-04-15-04-43.bpo-32207.IzyAJo.rst
new file mode 100644
index 0000000..e521c9b
--- /dev/null
+++ b/Misc/NEWS.d/next/IDLE/2017-12-04-15-04-43.bpo-32207.IzyAJo.rst
@@ -0,0 +1,6 @@
+Improve tk event exception tracebacks in IDLE.
+When tk event handling is driven by IDLE's run loop, a confusing
+and distracting queue.EMPTY traceback context is no longer added
+to tk event exception tracebacks. The traceback is now the same
+as when event handling is driven by user code. Patch based on a
+suggestion by Serhiy Storchaka.