@@ -19,8 +19,29 @@ class StackTreeItem(TreeItem):
1919
2020 def __init__ (self , flist = None , tb = None ):
2121 self .flist = flist
22- self .stack = get_stack (tb )
23- self .text = get_exception ()
22+ self .stack = self .get_stack (tb )
23+ self .text = self .get_exception ()
24+
25+ def get_stack (self , tb ):
26+ if tb is None :
27+ tb = sys .last_traceback
28+ stack = []
29+ if tb and tb .tb_frame is None :
30+ tb = tb .tb_next
31+ while tb is not None :
32+ stack .append ((tb .tb_frame , tb .tb_lineno ))
33+ tb = tb .tb_next
34+ return stack
35+
36+ def get_exception (self ):
37+ type = sys .last_type
38+ value = sys .last_value
39+ if hasattr (type , "__name__" ):
40+ type = type .__name__
41+ s = str (type )
42+ if value is not None :
43+ s = s + ": " + str (value )
44+ return s
2445
2546 def GetText (self ):
2647 return self .text
@@ -54,8 +75,6 @@ def GetText(self):
5475 else :
5576 item = "%s.%s(...), line %d: %s" % (modname , funcname ,
5677 lineno , sourceline )
57- ## if i == index:
58- ## item = "> " + item
5978 return item
6079
6180 def GetSubList (self ):
@@ -102,33 +121,6 @@ def setfunction(value, key=key, object=self.object):
102121 sublist .append (item )
103122 return sublist
104123
105- def get_stack (t = None , f = None ):
106- if t is None :
107- t = sys .last_traceback
108- stack = []
109- if t and t .tb_frame is f :
110- t = t .tb_next
111- while f is not None :
112- stack .append ((f , f .f_lineno ))
113- if f is self .botframe :
114- break
115- f = f .f_back
116- stack .reverse ()
117- while t is not None :
118- stack .append ((t .tb_frame , t .tb_lineno ))
119- t = t .tb_next
120- return stack
121-
122- def get_exception (type = None , value = None ):
123- if type is None :
124- type = sys .last_type
125- value = sys .last_value
126- if hasattr (type , "__name__" ):
127- type = type .__name__
128- s = str (type )
129- if value is not None :
130- s = s + ": " + str (value )
131- return s
132124
133125def _test ():
134126 try :
0 commit comments