summaryrefslogtreecommitdiffstats
path: root/Lib/idlelib/StackViewer.py
diff options
context:
space:
mode:
authorKurt B. Kaiser <kbk@shore.net>2001-07-14 05:15:29 (GMT)
committerKurt B. Kaiser <kbk@shore.net>2001-07-14 05:15:29 (GMT)
commita4c9be88c6fef4c005e807778ba387c3aa8b44d4 (patch)
treebc36bb7942fe283b1a70b633a080af2eed7b9d8e /Lib/idlelib/StackViewer.py
parentbb6b1e9b26805af53e8758836343cf4b23d7f753 (diff)
downloadcpython-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.py34
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()