Skip to main content

A small Python class to quickly measure the time taken while executing a block of indented lines

Project description

Build Status codecov PyPI version

linetimer: A small Python class to measure the time taken by indented lines.

linetimer is a small Python class to quickly measure the time taken by a block of indented lines

Installation

To install the library, simply type in pip install linetimer in your terminal.

Usage

The basic usage is:

from linetimer import CodeTimer

with CodeTimer():
   line_to_measure()
   another_line()
   # etc...

Which will show the following after the indented line(s) finishes executing:

Code block took: x.xxx ms

You can also name the code blocks you want to measure:

with CodeTimer('loop 1'):
   for i in range(100000):
      pass

with CodeTimer('loop 2'):
   for i in range(100000):
      pass

Code block 'loop 1' took: 4.991 ms
Code block 'loop 2' took: 3.666 ms

And nest them:

with CodeTimer('Outer'):
   for i in range(100000):
      pass

   with CodeTimer('Inner'):
      for i in range(100000):
         pass

   for i in range(100000):
      pass

Code block 'Inner' took: 2.382 ms
Code block 'Outer' took: 10.466 ms

To get the time taken in different units, use the unit parameter:

with CodeTimer('Block', unit='h'):
   slow_function()

Code block 'Block' took: 2.382 h

Supported units are ms, s , m, h corresponding to milliseconds, seconds, minutes, hours.

If you need to retain the time taken, you can do it with:

ct = CodeTimer()

with ct:
   slow_function()

ct.took # This contains the time taken as per the unit provided (milliseconds by default)

Sometimes you want to use your own dedicated logger, you can do it with:

import logging
my_logger = logging.get_logger('xyz')

with CodeTimer('Block', unit='h', logger_func = my_logger.info):
   slow_function()

This will log to an appropriate handler,

INFO - Code block 'Block' took: 2.382 h

Finally, if you need to turn off the printed statements, use the silent=True argument

with CodeTimer(silent=True):
   slow_function()

# There will be no printed output

If you like this package, upvote it on StackOverflow.

Issues

If you encounter a problem, create an issue on Github.

Contributing

To contribute, please open an issue first and discuss your plan for contributing. Then fork this repository and commit a pull-request with your changes.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for linetimer, version 0.1.4
Filename, size File type Python version Upload date Hashes
Filename, size linetimer-0.1.4-py2-none-any.whl (4.5 kB) File type Wheel Python version py2 Upload date Hashes View
Filename, size linetimer-0.1.4-py3-none-any.whl (3.7 kB) File type Wheel Python version py3 Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page