[Python-checkins] r74325 - python/branches/tk_and_idle_maintenance/Lib/idlelib/PyShell.py

guilherme.polo python-checkins at python.org
Thu Aug 6 01:56:54 CEST 2009


Author: guilherme.polo
Date: Thu Aug  6 01:56:54 2009
New Revision: 74325

Log:
Blink the PyShell window the first time something is written to stderr (this is reset when shell restarts).

Modified:
   python/branches/tk_and_idle_maintenance/Lib/idlelib/PyShell.py

Modified: python/branches/tk_and_idle_maintenance/Lib/idlelib/PyShell.py
==============================================================================
--- python/branches/tk_and_idle_maintenance/Lib/idlelib/PyShell.py	(original)
+++ python/branches/tk_and_idle_maintenance/Lib/idlelib/PyShell.py	Thu Aug  6 01:56:54 2009
@@ -843,7 +843,7 @@
         self.save_stdin = sys.stdin
         import IOBinding
         self.stdout = PseudoFile(self, "stdout", IOBinding.encoding)
-        self.stderr = PseudoFile(self, "stderr", IOBinding.encoding)
+        self.stderr = PseudoStderrFile(self, encoding=IOBinding.encoding)
         self.console = PseudoFile(self, "console", IOBinding.encoding)
         if not use_subprocess:
             sys.stdout = self.stdout
@@ -1187,6 +1187,7 @@
         self.text.see("restart")
 
     def restart_shell(self, event=None):
+        self.stderr.signaled = False
         self.interp.restart_subprocess()
 
     def showprompt(self):
@@ -1242,6 +1243,16 @@
     def isatty(self):
         return True
 
+class PseudoStderrFile(PseudoFile):
+    def __init__(self, shell, tags="stderr", encoding=None):
+        PseudoFile.__init__(self, shell, tags, encoding)
+        self.signaled = False
+
+    def write(self, s):
+        if not self.signaled:
+            self.shell.top.wakeup()
+            self.signaled = True
+        PseudoFile.write(self, s)
 
 usage_msg = """\
 


More information about the Python-checkins mailing list