fmtlegacy/support/timer.py
Victor Zverovich c110f7b8d3 Move the code from appveyor config to a Python script
No more PowerShell rubbish, yay!
2015-02-12 17:53:39 -08:00

36 lines
725 B
Python

# A with statement based timer.
from __future__ import print_function
from contextlib import contextmanager
import timeit
class Timer:
"""
A with statement based timer.
Usage:
t = Timer()
with t:
do_something()
time = t.time
"""
def __enter__(self):
self.start = timeit.default_timer()
def __exit__(self, type, value, traceback):
finish = timeit.default_timer()
self.time = finish - self.start
@contextmanager
def print_time(*args):
"""
Measures and prints the time taken to execute nested code.
args: Additional arguments to print.
"""
t = Timer()
print(*args)
with t:
yield
print(*args, end=' ')
print('finished in {0:.2f} second(s)'.format(t.time))