[Python-checkins] r53644 - python/trunk/Lib/idlelib/PyShell.py

kurt.kaiser python-checkins at python.org
Tue Feb 6 04:21:41 CET 2007


Author: kurt.kaiser
Date: Tue Feb  6 04:21:40 2007
New Revision: 53644

Modified:
   python/trunk/Lib/idlelib/PyShell.py
Log:
Clean up ModifiedInterpreter.runcode() structure


Modified: python/trunk/Lib/idlelib/PyShell.py
==============================================================================
--- python/trunk/Lib/idlelib/PyShell.py	(original)
+++ python/trunk/Lib/idlelib/PyShell.py	Tue Feb  6 04:21:40 2007
@@ -706,35 +706,37 @@
         debugger = self.debugger
         try:
             self.tkconsole.beginexecuting()
-            try:
-                if not debugger and self.rpcclt is not None:
-                    self.active_seq = self.rpcclt.asyncqueue("exec", "runcode",
-                                                            (code,), {})
-                elif debugger:
-                    debugger.run(code, self.locals)
-                else:
-                    exec code in self.locals
-            except SystemExit:
-                if not self.tkconsole.closing:
-                    if tkMessageBox.askyesno(
-                        "Exit?",
-                        "Do you want to exit altogether?",
-                        default="yes",
-                        master=self.tkconsole.text):
-                        raise
-                    else:
-                        self.showtraceback()
-                else:
+            if not debugger and self.rpcclt is not None:
+                self.active_seq = self.rpcclt.asyncqueue("exec", "runcode",
+                                                        (code,), {})
+            elif debugger:
+                debugger.run(code, self.locals)
+            else:
+                exec code in self.locals
+        except SystemExit:
+            if not self.tkconsole.closing:
+                if tkMessageBox.askyesno(
+                    "Exit?",
+                    "Do you want to exit altogether?",
+                    default="yes",
+                    master=self.tkconsole.text):
                     raise
-            except:
-                if use_subprocess:
-                    # When run w/o subprocess, both user and IDLE errors
-                    # are printed here; skip message in that case.
-                    print >> self.tkconsole.stderr, \
-                             "IDLE internal error in runcode()"
+                else:
+                    self.showtraceback()
+            else:
+                raise
+        except:
+            if use_subprocess:
+                print >>self.tkconsole.stderr, \
+                         "IDLE internal error in runcode()"
                 self.showtraceback()
-                if use_subprocess:
-                    self.tkconsole.endexecuting()
+                self.tkconsole.endexecuting()
+            else:
+                if self.tkconsole.canceled:
+                    self.tkconsole.canceled = False
+                    print >>self.tkconsole.stderr, "KeyboardInterrupt"
+                else:
+                    self.showtraceback()
         finally:
             if not use_subprocess:
                 try:


More information about the Python-checkins mailing list