An amazing alternative to Python's builtin timeit module that allows for high resolution timing of functions as well as in-depth line-by-line timing. It also exposes convenient classes to measure execution time for any arbitrary code.
Project description
wraptimer
An amazing alternative to Python's builtin timeit
module that allows for high resolution timing of functions as well as in-depth line-by-line timing. It also exposes convenient classes to measure execution time for any arbitrary code.
Sync function example
# imports
import time
from wraptimer import TimeIt
# Init
timeit = TimeIt()
# decorate
@timeit.byline
def test_by_line():
a = 10
b = 20
time.sleep(0.8)
c = a + b
return [a, b, c]
# run
test_by_line()
Async function example
# Imports
import asyncio
from wraptimer import TimeIt
# Init
timeit = TimeIt()
# decorate
@timeit.byline
async def test_by_line_async():
a = 10
b = 20
await asyncio.sleep(1.25)
return [a, b]
# run
asyncio.run(test_by_line_async())
Don't need Line-by-line tracing?
Use @timeit.func
if you do not want to print line-by-line durations.
...
@timeit.func
async def test_by_line_async():
a = 10
b = 20
await asyncio.sleep(1.25)
return [a, b]
Read the documentation
For more about wraptimer, Read The Documentation
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
wraptimer-0.1.2.tar.gz
(5.2 kB
view hashes)
Built Distribution
Close
Hashes for wraptimer-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dc07867e8deb791ad92814fb275a199d22932941b7f14b3721f52a9d58db8efa |
|
MD5 | edd9c054fd3e77a405587fe7700484d2 |
|
BLAKE2b-256 | 2a205cb3d57249437326b743d130dd3fc7c47d91e1b4c74f68e27eae188ad50c |