From b4ce43011e5d3ad43a421f1e2d366f0ce8cd36dc Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Mon, 26 Mar 2001 17:41:35 +0000 Subject: Turn SyntasWarning into SyntaxError for all code entered interactively. --- Tools/idle/PyShell.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Tools/idle/PyShell.py b/Tools/idle/PyShell.py index 86c0f6b..bae4e16 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() -- cgit v0.12