import numpy as np from . import utils class StopWatch(utils.StopWatch): def __del__(self): print('='*80) print('gtimer:') total = ', '.join(['%s: %f[s]' % (k,v) for k,v in self.get(reduce=np.sum).items()]) print(f' [total] {total}') mean = ', '.join(['%s: %f[s]' % (k,v) for k,v in self.get(reduce=np.mean).items()]) print(f' [mean] {mean}') median = ', '.join(['%s: %f[s]' % (k,v) for k,v in self.get(reduce=np.median).items()]) print(f' [median] {median}') print('='*80) GTIMER = StopWatch() def start(name): GTIMER.start(name) def stop(name): GTIMER.stop(name) class Ctx(object): def __init__(self, name): self.name = name def __enter__(self): start(self.name) def __exit__(self, *args): stop(self.name)