import string
import getopt
import re
+import warnings
import linecache
from code import 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
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()