Skip to content

Commit

Permalink
bpo-37824: Properly handle user input warnings in IDLE shell. (python…
Browse files Browse the repository at this point in the history
…GH-15500)

Cease turning SyntaxWarnings into SyntaxErrors.
  • Loading branch information
terryjreedy authored Aug 26, 2019
1 parent 73e0549 commit 1039f39
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 14 deletions.
6 changes: 6 additions & 0 deletions Lib/idlelib/NEWS.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
17 changes: 3 additions & 14 deletions Lib/idlelib/pyshell.py
Original file line number Diff line number Diff line change
Expand Up @@ -394,7 +394,6 @@ def __init__(self, tkconsole):
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
Expand Down Expand Up @@ -665,8 +664,6 @@ def runsource(self, source):
"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):
Expand All @@ -677,14 +674,9 @@ def runsource(self, source):
# 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"
Expand Down Expand Up @@ -763,9 +755,6 @@ def runcode(self, code):
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()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Properly handle user input warnings in IDLE shell. Cease turning
SyntaxWarnings into SyntaxErrors.

0 comments on commit 1039f39

Please sign in to comment.