From: Guido van Rossum Date: Mon, 26 Mar 2001 17:41:35 +0000 (+0000) Subject: Turn SyntasWarning into SyntaxError for all code entered X-Git-Tag: v2.1c1~232 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b4ce43011e5d3ad43a421f1e2d366f0ce8cd36dc;p=thirdparty%2FPython%2Fcpython.git Turn SyntasWarning into SyntaxError for all code entered interactively. --- diff --git a/Tools/idle/PyShell.py b/Tools/idle/PyShell.py index 86c0f6b0ae4b..bae4e16d7e06 100644 --- a/Tools/idle/PyShell.py +++ b/Tools/idle/PyShell.py @@ -5,6 +5,7 @@ import sys import string import getopt import re +import warnings import linecache from code import InteractiveInterpreter @@ -180,7 +181,14 @@ class ModifiedInterpreter(InteractiveInterpreter): # Extend base class to stuff the source in the line cache first filename = self.stuffsource(source) self.more = 0 - return InteractiveInterpreter.runsource(self, source, filename) + self.save_warnings_filters = warnings.filters[:] + warnings.filterwarnings(action="error", category=SyntaxWarning) + try: + 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 def stuffsource(self, source): # Stuff source in the filename cache @@ -249,6 +257,9 @@ class ModifiedInterpreter(InteractiveInterpreter): def runcode(self, code): # Override base class method + 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()