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()