Skip to main content

Elapsed timer and utilities

Project description

Python elapsed time utilities.

The main interface to this package is an ElapsedTimer class. This class will use the highest resolution timer available to Python depending on the OS, either time.time() or time.clock(). Its purpose is easily to measure and print the duration of a task, and is normally meant to be used as a context manager.

Basic example:

>>> with ElapsedTimer('say hello'):
...     print 'hi there!'
hi there!
13.113 µs: say hello

ElapsedTimer

The constructor for ElapsedTimer takes an optional string describing the operation being performed. It also optionally accepts a file object to change where the resulting duration message will be printed. The output file defaults to sys.stdout.

The constructor can also take a logger instance and log level via the optional logger and loglevel keyword parameters. If a logger is provided, it takes precedence over a file object and the duration message will be output via the logger. The log level defaults to DEBUG.

You can control an ElapsedTimer instance directly instead of using it as a context manager. It has start() and stop() methods. The stop() method will not print the duration for you like exiting a context manager instance does.

There is an elapsed property that returns the elapsed time since start() was called or the context manager entered. A timedelta property is also available that returns the elapsed time as a datetime.timedelta object instead of a float, though note that this class this only has microsecond resolution.

There is a module-level enable variable that acts as a global enable switch for all printing of results by ElapsedTimer. It defaults to True.

Timeout

Another class in the module is Timeout. It adds a few methods to make it easy to check for timeouts. You can use this class as a context manager. The constructor takes the same parameters as for ElapsedTimer, except for a new first param of the timeout in seconds.

There are two methods to check the timeout, check() and check_and_raise(). The former compares the elapsed time against the timeout and returned True if a timeout occurred. The latter will raise TimeoutError if a timeout happens. You can use the timed_out property to as another way to check, equivalent to calling check().

License

This package is licensed under the BSD three-clause license. See the LICENSE file for details.

Copyright © 2014-2016 Chris Reed.

Project details


Download files

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

Source Distribution

elapsedtimer-0.4.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

elapsedtimer-0.4-py2.py3-none-any.whl (6.7 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file elapsedtimer-0.4.tar.gz.

File metadata

  • Download URL: elapsedtimer-0.4.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for elapsedtimer-0.4.tar.gz
Algorithm Hash digest
SHA256 e4cdaba86e539de29099056d2570bd6938b27f946766c1cdd4530666995e23f8
MD5 dffac13f9eb717694e5ee12c8698479c
BLAKE2b-256 801d283794892b70d3d3db420a70d1f101e5f619b2d00fbcc64721371011755a

See more details on using hashes here.

File details

Details for the file elapsedtimer-0.4-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for elapsedtimer-0.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 4dd62e927e1a85c5ad8a6a6cd5b9bd4e28620e897b9195406047f99ca8d27eab
MD5 3ce1cca089ab69f3c1c1f54f68fe8663
BLAKE2b-256 48a70a875e6bf56f89ff7835e0c21082d7da999eef008d0aa5091a796c8408ca

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page