Skip to content

astagi/lauda

Repository files navigation

Lauda

Build Status Codecov.io Status Latest Version Supported Python versions License Downloads

A very simple python module for measuring time.

Install

pip install lauda

Usage

You can use lauda StopWatch to measure the time spent in a portion of code

from lauda import StopWatch

watch = StopWatch()
watch.start()
for i in range(10000000):
    pass
watch.stop()
print ('Time spent in range {0}'.format(watch.elapsed_time))

You can also get the elapsed_time when the stopwatch is running

You can call checkpoint function if you want to set a checkpoint and get the time spent between the last checkpoint:

from lauda import StopWatch

watch = StopWatch()
watch.start()
for i in range(10000000):
    pass
check_time = watch.checkpoint()
print ('Time spent in first range: {0} sec.'.format(check_time))
for i in range(10000000):
    pass
check_time = watch.checkpoint()
print ('Time spent in second range: {0} sec.'.format(check_time))

If you want to measure an entire function execution, you can decorate it using the stopwatch decorator

from lauda import stopwatch

@stopwatch
def awesome_mul(a, b):
    return a * b

By default stopwatch decorator will print the time spent inside the decorated function, if you want more control you can pass to your decorator a callback that will receive a StopWatch instance and the decorated function.

from lauda import stopwatch

def stopwatch_sum_cb(watch, function):
    print ('Time spent {0}'.format(watch.elapsed_time))

@stopwatch(callback=stopwatch_sum_cb)
def awesome_sum(a, b):
    return a + b

If you want to measure a block of code, you can use the stopwatchcm context manager

from lauda import stopwatchcm

with stopwatchcm():
    c = a * b

By default stopwatchcm context manager will print the time spent inside the context manager body, if you want more control you can pass to your context manager a callback that will receive a StopWatch instance.

from lauda import stopwatchcm

def stopwatch_sum_cb(watch):
    print ('Time spent {0}'.format(watch.elapsed_time))

with stopwatchcm(callback=stopwatch_sum_cb):
    c = a + b