diff options
author | Kurt B. Kaiser <kbk@shore.net> | 2001-07-14 05:15:29 (GMT) |
---|---|---|
committer | Kurt B. Kaiser <kbk@shore.net> | 2001-07-14 05:15:29 (GMT) |
commit | a4c9be88c6fef4c005e807778ba387c3aa8b44d4 (patch) | |
tree | bc36bb7942fe283b1a70b633a080af2eed7b9d8e /Lib/idlelib/StackViewer.py | |
parent | bb6b1e9b26805af53e8758836343cf4b23d7f753 (diff) | |
download | cpython-a4c9be88c6fef4c005e807778ba387c3aa8b44d4.zip cpython-a4c9be88c6fef4c005e807778ba387c3aa8b44d4.tar.gz cpython-a4c9be88c6fef4c005e807778ba387c3aa8b44d4.tar.bz2 |
py-cvs-2001_07_13 (Rev 1.16) merge
"Refactored, with some future plans in mind. This now uses the new
gotofileline() method defined in FileList.py" --GvR
Diffstat (limited to 'Lib/idlelib/StackViewer.py')
-rw-r--r-- | Lib/idlelib/StackViewer.py | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/Lib/idlelib/StackViewer.py b/Lib/idlelib/StackViewer.py index ab09db0..d70658b 100644 --- a/Lib/idlelib/StackViewer.py +++ b/Lib/idlelib/StackViewer.py @@ -1,24 +1,27 @@ +import os +import sys import string -from Tkinter import * import linecache from TreeWidget import TreeNode, TreeItem, ScrolledCanvas from ObjectBrowser import ObjectTreeItem, make_objecttreeitem from OldStackViewer import StackViewer, NamespaceViewer -def StackBrowser(root, flist=None, stack=None): - top = Toplevel(root) +def StackBrowser(root, flist=None, tb=None, top=None): + if top is None: + from Tkinter import Toplevel + top = Toplevel(root) sc = ScrolledCanvas(top, bg="white", highlightthickness=0) sc.frame.pack(expand=1, fill="both") - item = StackTreeItem(flist) + item = StackTreeItem(flist, tb) node = TreeNode(sc.canvas, None, item) node.expand() class StackTreeItem(TreeItem): - def __init__(self, flist=None): + def __init__(self, flist=None, tb=None): self.flist = flist - self.stack = get_stack() + self.stack = get_stack(tb) self.text = get_exception() def GetText(self): @@ -71,8 +74,8 @@ class FrameTreeItem(TreeItem): if self.flist: frame, lineno = self.info filename = frame.f_code.co_filename - edit = self.flist.open(filename) - edit.gotoline(lineno) + if os.path.isfile(filename): + self.flist.gotofileline(filename, lineno) class VariablesTreeItem(ObjectTreeItem): @@ -129,7 +132,16 @@ def get_exception(type=None, value=None): s = s + ": " + str(value) return s -if __name__ == "__main__": +def _test(): + try: + import testcode + reload(testcode) + except: + sys.last_type, sys.last_value, sys.last_traceback = sys.exc_info() + from Tkinter import Tk root = Tk() - root.withdraw() - StackBrowser(root) + StackBrowser(None, top=root) + root.mainloop() + +if __name__ == "__main__": + _test() |