def log_start_end(f):
def inner(f, *args, **kwargs):<EOL><INDENT>logging.info('<STR_LIT>' % f.__name__)<EOL>res = f(*args, **kwargs)<EOL>logging.info('<STR_LIT>' % f.__name__)<EOL>return res<EOL><DEDENT>return decorator.decorator(inner, f)<EOL>
Decorator to log start and end of function

Use of decorator module here ensures that argspec will inspect wrapped
function, not the decorator itself.
http://micheles.googlecode.com/hg/decorator/documentation.html