blob: 2be2d2f74836cab5f2ec781a57e9dad776451c67 [file]
import yappi
class YappiProfile(object):
""" Wrapper class that represents Yappi profiling backend with API matching
the cProfile.
"""
def __init__(self):
self.stats = None
def runcall(self, func, *args, **kw):
self.enable()
try:
return func(*args, **kw)
finally:
self.disable()
def enable(self):
yappi.start()
def disable(self):
yappi.stop()
def create_stats(self):
self.stats = yappi.convert2pstats(yappi.get_func_stats()).stats
def getstats(self):
self.create_stats()
return self.stats
def dump_stats(self, file):
import marshal
f = open(file, 'wb')
marshal.dump(self.getstats(), f)
f.close()