A Python decorator to profile a function
@contextmanager
def profilectx():
pr = cProfile.Profile()
pr.enable()
yield
pr.disable()
pr.print_stats(sort="cumtime")
def profile(method):
@functools.wraps(method)
def wrapper(*args, **kwargs):
with profilectx():
method(*args, **kwargs)
return wrapper