summaryrefslogtreecommitdiffstats
path: root/Lib/idlelib
diff options
context:
space:
mode:
authorTerry Jan Reedy <tjreedy@udel.edu>2019-08-26 06:27:56 (GMT)
committerGitHub <noreply@github.com>2019-08-26 06:27:56 (GMT)
commit1039f39c9c6edb4c185856c19316d3a4eb561c38 (patch)
treedc336bbb7373edb44c8cab0358a0ea3c1839f6bd /Lib/idlelib
parent73e054970193fc421c533564a4189be522f9c331 (diff)
downloadcpython-1039f39c9c6edb4c185856c19316d3a4eb561c38.zip
cpython-1039f39c9c6edb4c185856c19316d3a4eb561c38.tar.gz
cpython-1039f39c9c6edb4c185856c19316d3a4eb561c38.tar.bz2
bpo-37824: Properly handle user input warnings in IDLE shell. (GH-15500)
Cease turning SyntaxWarnings into SyntaxErrors.
Diffstat (limited to 'Lib/idlelib')
-rw-r--r--Lib/idlelib/NEWS.txt6
-rwxr-xr-xLib/idlelib/pyshell.py17
2 files changed, 9 insertions, 14 deletions
diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt
index 45918cf..949b30b 100644
--- a/Lib/idlelib/NEWS.txt
+++ b/Lib/idlelib/NEWS.txt
@@ -3,6 +3,12 @@ Released on 2019-10-20?
======================================
+bpo-37824: Properly handle user input warnings in IDLE shell.
+Cease turning SyntaxWarnings into SyntaxErrors.
+
+bpo-37929: IDLE Settings dialog now closes properly when there is no
+shell window.
+
bpo-37849: Fix completions list appearing too high or low when shown
above the current line.
diff --git a/Lib/idlelib/pyshell.py b/Lib/idlelib/pyshell.py
index 87401f3..ea94655 100755
--- a/Lib/idlelib/pyshell.py
+++ b/Lib/idlelib/pyshell.py
@@ -394,7 +394,6 @@ class ModifiedInterpreter(InteractiveInterpreter):
self.tkconsole = tkconsole
locals = sys.modules['__main__'].__dict__
InteractiveInterpreter.__init__(self, locals=locals)
- self.save_warnings_filters = None
self.restarting = False
self.subprocess_arglist = None
self.port = PORT
@@ -665,8 +664,6 @@ class ModifiedInterpreter(InteractiveInterpreter):
"Extend base class method: Stuff the source in the line cache first"
filename = self.stuffsource(source)
self.more = 0
- self.save_warnings_filters = warnings.filters[:]
- warnings.filterwarnings(action="error", category=SyntaxWarning)
# at the moment, InteractiveInterpreter expects str
assert isinstance(source, str)
#if isinstance(source, str):
@@ -677,14 +674,9 @@ class ModifiedInterpreter(InteractiveInterpreter):
# self.tkconsole.resetoutput()
# self.write("Unsupported characters in input\n")
# return
- try:
- # InteractiveInterpreter.runsource() calls its runcode() method,
- # which is overridden (see below)
- return InteractiveInterpreter.runsource(self, source, filename)
- finally:
- if self.save_warnings_filters is not None:
- warnings.filters[:] = self.save_warnings_filters
- self.save_warnings_filters = None
+ # InteractiveInterpreter.runsource() calls its runcode() method,
+ # which is overridden (see below)
+ return InteractiveInterpreter.runsource(self, source, filename)
def stuffsource(self, source):
"Stuff source in the filename cache"
@@ -763,9 +755,6 @@ class ModifiedInterpreter(InteractiveInterpreter):
if self.tkconsole.executing:
self.interp.restart_subprocess()
self.checklinecache()
- if self.save_warnings_filters is not None:
- warnings.filters[:] = self.save_warnings_filters
- self.save_warnings_filters = None
debugger = self.debugger
try:
self.tkconsole.beginexecuting()