[Python-checkins] CVS: python/dist/src/Tools/idle StackViewer.py,1.15,1.16

Guido van Rossum gvanrossum@users.sourceforge.net
2001年5月12日 05:30:07 -0700


Update of /cvsroot/python/python/dist/src/Tools/idle
In directory usw-pr-cvs1:/tmp/cvs-serv14975
Modified Files:
	StackViewer.py 
Log Message:
Refactored, with some future plans in mind.
This now uses the new gotofileline() method defined in FileList.py.
Index: StackViewer.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Tools/idle/StackViewer.py,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -r1.15 -r1.16
*** StackViewer.py	2001年01月17日 08:48:39	1.15
--- StackViewer.py	2001年05月12日 12:30:04	1.16
***************
*** 1,4 ****
 import string
- from Tkinter import *
 import linecache
 
--- 1,5 ----
+ import os
+ import sys
 import string
 import linecache
 
***************
*** 7,15 ****
 from OldStackViewer import StackViewer, NamespaceViewer
 
! def StackBrowser(root, flist=None, stack=None):
! top = Toplevel(root)
 sc = ScrolledCanvas(top, bg="white", highlightthickness=0)
 sc.frame.pack(expand=1, fill="both")
! item = StackTreeItem(flist)
 node = TreeNode(sc.canvas, None, item)
 node.expand()
--- 8,18 ----
 from OldStackViewer import StackViewer, NamespaceViewer
 
! 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, tb)
 node = TreeNode(sc.canvas, None, item)
 node.expand()
***************
*** 17,23 ****
 class StackTreeItem(TreeItem):
 
! def __init__(self, flist=None):
 self.flist = flist
! self.stack = get_stack()
 self.text = get_exception()
 
--- 20,26 ----
 class StackTreeItem(TreeItem):
 
! def __init__(self, flist=None, tb=None):
 self.flist = flist
! self.stack = get_stack(tb)
 self.text = get_exception()
 
***************
*** 72,77 ****
 frame, lineno = self.info
 filename = frame.f_code.co_filename
! edit = self.flist.open(filename)
! edit.gotoline(lineno)
 
 class VariablesTreeItem(ObjectTreeItem):
--- 75,80 ----
 frame, lineno = self.info
 filename = frame.f_code.co_filename
! if os.path.isfile(filename):
! self.flist.gotofileline(filename, lineno)
 
 class VariablesTreeItem(ObjectTreeItem):
***************
*** 130,135 ****
 return s
 
! if __name__ == "__main__":
 root = Tk()
! root.withdraw()
! StackBrowser(root)
--- 133,147 ----
 return s
 
! 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()
! StackBrowser(None, top=root)
! root.mainloop()
! 
! if __name__ == "__main__":
! _test()

AltStyle によって変換されたページ (->オリジナル) /