Mercurial > cpython-lru_cache-weakref
diff Lib/idlelib/PyShell.py @ 40745:1af8fee33013 legacy-trunk
Clean up ModifiedInterpreter.runcode() structure
| author | Kurt B. Kaiser <kbk@shore.net> |
|---|---|
| date | Tue, 06 Feb 2007 03:21:40 +0000 |
| parents | 70140cccd3da |
| children | 732ca27a678c |
line wrap: on
line diff
--- a/Lib/idlelib/PyShell.py Mon Feb 05 23:02:16 2007 +0000 +++ b/Lib/idlelib/PyShell.py Tue Feb 06 03:21:40 2007 +0000 @@ -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) + 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: - 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() + self.showtraceback() + else: + raise + except: + if use_subprocess: + print >>self.tkconsole.stderr, \ + "IDLE internal error in runcode()" + self.showtraceback() + self.tkconsole.endexecuting() + else: + if self.tkconsole.canceled: + self.tkconsole.canceled = False + print >>self.tkconsole.stderr, "KeyboardInterrupt" else: - 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()" - self.showtraceback() - if use_subprocess: - self.tkconsole.endexecuting() + self.showtraceback() finally: if not use_subprocess: try:
