From 94bd77415fc44ada4ceba856a81fe029c12bf313 Mon Sep 17 00:00:00 2001 From: "Kurt B. Kaiser" Date: Sat, 14 Jul 2001 00:13:28 +0000 Subject: cvs-py-rel2_1 (Rev 1.29 - 1.33) merge Merged the following py-cvs revs without conflict: 1.29 Reduce copyright text output at startup 1.30 Delay setting sys.args until Tkinter is fully initialized 1.31 Whitespace normalization 1.32 Turn syntax warning into error when interactive 1.33 Fix warning initialization bug Note that module is extensively modified wrt py-cvs --- Lib/idlelib/PyShell.py | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py index 7ae7130..da827b8 100644 --- a/Lib/idlelib/PyShell.py +++ b/Lib/idlelib/PyShell.py @@ -27,6 +27,7 @@ import string import getopt import re import protocol +import warnings import linecache from code import InteractiveInterpreter @@ -146,7 +147,7 @@ class ModifiedColorDelegator(ColorDelegator): "stderr": cconf.getcolor("stderr"), "console": cconf.getcolor("console"), "ERROR": cconf.getcolor("ERROR"), - None: cconf.getcolor("normal"), + None: cconf.getcolor("normal"), }) @@ -178,6 +179,7 @@ class ModifiedInterpreter(InteractiveInterpreter): self.tkconsole = tkconsole locals = sys.modules['__main__'].__dict__ InteractiveInterpreter.__init__(self, locals=locals) + self.save_warnings_filters = None gid = 0 @@ -202,7 +204,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 @@ -271,6 +280,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() @@ -451,10 +463,13 @@ class PyShell(OutputWindow): def short_title(self): return self.shell_title + COPYRIGHT = \ + 'Type "copyright", "credits" or "license" for more information.' + def begin(self): self.resetoutput() self.write("Python %s on %s\n%s\nIDLE %s -- press F1 for help\n" % - (sys.version, sys.platform, sys.copyright, + (sys.version, sys.platform, self.COPYRIGHT, idlever.IDLE_VERSION)) try: sys.ps1 @@ -790,12 +805,6 @@ class main: if noshell: edit=1 - if not edit: - if cmd: - sys.argv = ["-c"] + args - else: - sys.argv = args or [""] - for i in range(len(sys.path)): sys.path[i] = os.path.abspath(sys.path[i]) @@ -813,7 +822,7 @@ class main: sys.path.insert(0, dir) global flist, root - root = Tk() + root = Tk(className="Idle") fixwordbreaks(root) root.withdraw() flist = PyShellFileList(root) @@ -823,7 +832,12 @@ class main: flist.open(filename) if not args: flist.new() - + else: + if cmd: + sys.argv = ["-c"] + args + else: + sys.argv = args or [""] + #dbg=OnDemandOutputWindow(flist) #dbg.set_title('Internal IDLE Problem') #sys.stdout = PseudoFile(dbg,['stdout']) -- cgit v0.12