summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTerry Jan Reedy <tjreedy@udel.edu>2019-09-17 02:05:04 -0400
committerGitHub <noreply@github.com>2019-09-17 02:05:04 -0400
commitdfd34a9cd58e8150c324190f746de919e140abe8 (patch)
tree8bea5573aa4f327c8d55fd4e0410756f6fefe880
parent63dedef48bba9d54f13b958237696505fa665796 (diff)
downloadcpython-git-dfd34a9cd58e8150c324190f746de919e140abe8.tar.gz
bpo-35379: When exiting IDLE, catch any AttributeError. (GH-16212)
One happens when EditorWindow.close is called twice. Printing a traceback, when IDLE is run from a terminal, is useless and annoying.
-rw-r--r--Lib/idlelib/NEWS.txt7
-rw-r--r--Lib/idlelib/editor.py11
-rw-r--r--Misc/NEWS.d/next/IDLE/2019-09-17-01-28-56.bpo-35379.yAECDr.rst3
3 files changed, 17 insertions, 4 deletions
diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt
index 3ccc5c07fb..9d26bda425 100644
--- a/Lib/idlelib/NEWS.txt
+++ b/Lib/idlelib/NEWS.txt
@@ -2,6 +2,13 @@ What's New in IDLE 3.8.0 (since 3.7.0)
Released on 2019-10-20?
======================================
+bpo-35379: When exiting IDLE, catch any AttributeError. One happens
+when EditorWindow.close is called twice. Printing a traceback, when
+IDLE is run from a terminal, is useless and annoying.
+
+bpo-38183: To avoid test issues, test_idle ignores the user config
+directory. It no longer tries to create or access .idlerc or any files
+within. Users must run IDLE to discover problems with saving settings.
bpo-38077: IDLE no longer adds 'argv' to the user namespace when
initializing it. This bug only affected 3.7.4 and 3.8.0b2 to 3.8.0b4.
diff --git a/Lib/idlelib/editor.py b/Lib/idlelib/editor.py
index 838cb04b80..b969f8c493 100644
--- a/Lib/idlelib/editor.py
+++ b/Lib/idlelib/editor.py
@@ -1061,10 +1061,13 @@ class EditorWindow(object):
return self.io.maybesave()
def close(self):
- reply = self.maybesave()
- if str(reply) != "cancel":
- self._close()
- return reply
+ try:
+ reply = self.maybesave()
+ if str(reply) != "cancel":
+ self._close()
+ return reply
+ except AttributeError: # bpo-35379: close called twice
+ pass
def _close(self):
if self.io.filename:
diff --git a/Misc/NEWS.d/next/IDLE/2019-09-17-01-28-56.bpo-35379.yAECDr.rst b/Misc/NEWS.d/next/IDLE/2019-09-17-01-28-56.bpo-35379.yAECDr.rst
new file mode 100644
index 0000000000..98d41674b6
--- /dev/null
+++ b/Misc/NEWS.d/next/IDLE/2019-09-17-01-28-56.bpo-35379.yAECDr.rst
@@ -0,0 +1,3 @@
+When exiting IDLE, catch any AttributeError. One happens when
+EditorWindow.close is called twice. Printing a traceback, when IDLE is run
+from a terminal, is useless and annoying.