summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKurt B. Kaiser <kbk@shore.net>2001-07-14 00:13:28 (GMT)
committerKurt B. Kaiser <kbk@shore.net>2001-07-14 00:13:28 (GMT)
commit94bd77415fc44ada4ceba856a81fe029c12bf313 (patch)
treee209514b70b7f534ee53912dd910e16ee58c0188
parentb2a1de4679c9141b03781551356c51cd48f20519 (diff)
downloadcpython-94bd77415fc44ada4ceba856a81fe029c12bf313.zip
cpython-94bd77415fc44ada4ceba856a81fe029c12bf313.tar.gz
cpython-94bd77415fc44ada4ceba856a81fe029c12bf313.tar.bz2
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
-rw-r--r--Lib/idlelib/PyShell.py36
1 files 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'])