Remove old duplicate debug.py
- Legacy-Id: 4565
This commit is contained in:
parent
350914da15
commit
aa00b6e35d
|
@ -1,74 +0,0 @@
|
|||
|
||||
import sys
|
||||
import inspect
|
||||
from pprint import pformat
|
||||
from django.conf import settings
|
||||
|
||||
# A debug decorator, written by Paul Butler, taken from
|
||||
# http://paulbutler.org/archives/python-debugging-with-decorators/
|
||||
|
||||
# Number of times to indent output
|
||||
# A list is used to force access by reference
|
||||
__report_indent = [4]
|
||||
increment = 2
|
||||
|
||||
def set_indent(i):
|
||||
__report_indent[0] = i
|
||||
|
||||
def trace(fn): # renamed from 'report' by henrik 16 Jun 2011
|
||||
"""Decorator to print information about a function
|
||||
call for use while debugging.
|
||||
Prints function name, arguments, and call number
|
||||
when the function is called. Prints this information
|
||||
again along with the return value when the function
|
||||
returns.
|
||||
"""
|
||||
def fix(s,n=32):
|
||||
if len(s) > n+3:
|
||||
s = s[:n]+"..."
|
||||
s = s.replace('\n',' ')
|
||||
return s
|
||||
def wrap(*params,**kwargs):
|
||||
call = wrap.callcount = wrap.callcount + 1
|
||||
|
||||
indent = ' ' * __report_indent[0]
|
||||
fc = "%s(%s)" % (fn.__name__, ', '.join(
|
||||
[fix(repr(a)) for a in params] +
|
||||
["%s = %s" % (a, fix(repr(b))) for a,b in kwargs.items()]
|
||||
))
|
||||
|
||||
print "%s* %s [#%s]" % (indent, fc, call)
|
||||
__report_indent[0] += increment
|
||||
ret = fn(*params,**kwargs)
|
||||
__report_indent[0] -= increment
|
||||
print "%s %s [#%s] ==> %s" % (indent, fc, call, repr(ret))
|
||||
|
||||
return ret
|
||||
wrap.callcount = 0
|
||||
if settings.DEBUG:
|
||||
return wrap
|
||||
else:
|
||||
return fn
|
||||
|
||||
def show(name):
|
||||
if settings.DEBUG:
|
||||
frame = inspect.stack()[1][0]
|
||||
value = eval(name, frame.f_globals, frame.f_locals)
|
||||
indent = ' ' * (__report_indent[0])
|
||||
print "%s%s: %s" % (indent, name, value)
|
||||
|
||||
def pprint(name):
|
||||
if settings.DEBUG:
|
||||
frame = inspect.stack()[1][0]
|
||||
value = eval(name, frame.f_globals, frame.f_locals)
|
||||
indent = ' ' * (__report_indent[0])
|
||||
sys.stdout.write("%s%s:\n" % (indent, name))
|
||||
lines = pformat(value).split('\n')
|
||||
for line in lines:
|
||||
sys.stdout.write("%s %s\n"%(indent, line))
|
||||
|
||||
def say(s):
|
||||
if settings.DEBUG:
|
||||
indent = ' ' * (__report_indent[0])
|
||||
print "%s%s" % (indent, s)
|
||||
|
Loading…
Reference in a new issue