Remove antiquated trace script
This library was originally written to trace local variables. In the more than two years since it was originally written, the only update it has received was to remove PEP8/PyLint/quality violations. It's hard to imagine that this is still useful to anyone, though I'm open to discussion.
This commit is contained in:
@@ -1,51 +0,0 @@
|
||||
"""
|
||||
A handy util to print a django-debug-screen-like stack trace with
|
||||
values of local variables.
|
||||
"""
|
||||
|
||||
import sys
|
||||
import traceback
|
||||
from django.utils.encoding import smart_unicode
|
||||
|
||||
|
||||
def supertrace(max_len=160):
|
||||
"""
|
||||
Print the usual traceback information, followed by a listing of all the
|
||||
local variables in each frame. Should be called from an exception handler.
|
||||
|
||||
if max_len is not None, will print up to max_len chars for each local variable.
|
||||
|
||||
(cite: modified from somewhere on stackoverflow)
|
||||
"""
|
||||
tb = sys.exc_info()[2]
|
||||
while True:
|
||||
if not tb.tb_next:
|
||||
break
|
||||
tb = tb.tb_next
|
||||
stack = []
|
||||
frame = tb.tb_frame
|
||||
while frame:
|
||||
stack.append(f)
|
||||
frame = frame.f_back
|
||||
stack.reverse()
|
||||
# First print the regular traceback
|
||||
traceback.print_exc()
|
||||
|
||||
print "Locals by frame, innermost last"
|
||||
for frame in stack:
|
||||
print
|
||||
print "Frame %s in %s at line %s" % (frame.f_code.co_name,
|
||||
frame.f_code.co_filename,
|
||||
frame.f_lineno)
|
||||
for key, value in frame.f_locals.items():
|
||||
print ("\t%20s = " % smart_unicode(key, errors='ignore')),
|
||||
# We have to be careful not to cause a new error in our error
|
||||
# printer! Calling str() on an unknown object could cause an
|
||||
# error.
|
||||
try:
|
||||
s = smart_unicode(value, errors='ignore')
|
||||
if max_len is not None:
|
||||
s = s[:max_len]
|
||||
print s
|
||||
except:
|
||||
print "<ERROR WHILE PRINTING VALUE>"
|
||||
Reference in New Issue
Block a user