A flexible, customizable timer for your Python code
Project description
codetiming
- A flexible, customizable timer for your Python code
Install codetiming
from PyPI:
$ python -m pip install codetiming
The source code is available at GitHub.
Basic Usage
You can use codetiming.Timer
in several different ways:
-
As a class:
t = Timer(name="class") t.start() # Do something t.stop()
-
As a context manager:
with Timer(name="context manager"): # Do something
-
As a decorator:
@Timer(name="decorator") def stuff(): # Do something
Arguments
Timer
accepts the following arguments when it's created, all are optional:
name
: An optional name for your timertext
: The text shown when your timer ends. It should contain a{}
placeholder that will be filled by the elapsed time in seconds (default:"Elapsed time: {:.4f} seconds"
)logger
: A function/callable that takes a string argument, and will report the elapsed time when the logger is stopped (default:print()
)
You can turn off explicit reporting of the elapsed time by setting logger=None
.
When using Timer
as a class, you can capture the elapsed time when calling .stop()
:
elapsed_time = t.stop()
Named timers are made available in the class dictionary Timer.timers
. The elapsed time will accumulate if the same name or same timer is used several times. Consider the following example:
>>> import logging
>>> from codetiming import Timer
>>> t = Timer("example", text="Time spent: {:.2f}", logger=logging.warning)
>>> t.start()
>>> t.stop()
WARNING:root:Time spent: 3.58
3.5836678670002584
>>> with t:
... _ = list(range(100000000))
...
WARNING:root:Time spent: 1.73
>>> Timer.timers
{'example': 5.312697440000193}
The example shows how you can redirect the timer output to the logging module. Note that the elapsed time spent in the two different uses of t
has been accumulated in Timer.timers
.
Acknowledgements
codetiming
is based on a similar module originally developed for the Midgard Geodesy library at the Norwegian Mapping Authority.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file codetiming-0.1.2.tar.gz
.
File metadata
- Download URL: codetiming-0.1.2.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.21.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
2bec6b70613dabde539bb62427e5115289984e6924a41ecec12a6ce6e8d17a17
|
|
MD5 |
7f4024b3ad44d8a3fb0938bb43693552
|
|
BLAKE2b-256 |
4f3bcee7d80554282928c83e887c694c36562596812985fe663cfa725486b5d8
|
File details
Details for the file codetiming-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: codetiming-0.1.2-py3-none-any.whl
- Upload date:
- Size: 6.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.21.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
093c6be8a786b47ce52bbdbcc917faa666bd868cb19c52655dbd3b644b0ae3ba
|
|
MD5 |
8af6ae85c08ff52775f7088f4a18b6f2
|
|
BLAKE2b-256 |
88f00717a8b370955934f6204ab9ab4a5c3bc0b870870be50dc647fc66ace887
|