Skip to main content

Python Code Timer

Project description

Timer

Python code timer, support block wise and function wise

Installation

pip install timer

Usage

  1. import

    from timer import timer
    
  2. decorate without brackets

    @timer
    def func(): ...
    
  3. decorate with brackets

    @timer()
    def func(): ...
    
  4. decorate with name and time unit

    @timer('function name', 's')
    def func(): ...
    
  5. decorate with key word arguments

    @timer(name='function name', unit='s')
    def func(): ...
    
  6. block wise without object

    with timer():
        ...
    
  7. block wise with object

    with timer() as t:
        ...
        print(t.elapse)
    

Sample Code

import logging
import time

from timer import timer

# timer would print nothing without this line or logging level is info or higher
logging.basicConfig(level=logging.DEBUG)


# explicit the timer's name and it's time unit
@timer('function:add', unit='s')
def add(a, b):
    time.sleep(.1)
    return a + b


# function name is timer's name for default
@timer
def sub(a, b):
    time.sleep(.1)
    return a - b


if __name__ == '__main__':
    # 'timer' would be timer's name by default
    with timer('time.sleep(2)') as t:
        print(3)
        time.sleep(1)
        print(f'after time.sleep(1) once, t.elapse = {t.elapse}')
        time.sleep(1)
        print(f'after time.sleep(1) twice, t.elapse = {t.elapse}')
    print(f'after with, t.elapse = {t.elapse}')

    print(add(1, 1))
    print(sub(2, 1))

Outputs

3
after time.sleep(1) once, t.elapse = 1.003798776
after time.sleep(1) twice, t.elapse = 2.0052743459999998
DEBUG:timer.time.sleep(2): 2.006 s
after with, t.elapse = 2.005628447
DEBUG:timer.function:add: 0.105 s
2
DEBUG:timer.sub: 102 ms
1

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

timer-0.1.1.tar.gz (3.1 kB view details)

Uploaded Source

Built Distribution

timer-0.1.1-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file timer-0.1.1.tar.gz.

File metadata

  • Download URL: timer-0.1.1.tar.gz
  • Upload date:
  • Size: 3.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.0 importlib_metadata/3.7.3 packaging/20.9 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for timer-0.1.1.tar.gz
Algorithm Hash digest
SHA256 190a836d3b2a0502ee11513ef5358df3ad4ba82ef6162e6ec662e378614e881b
MD5 635598741366743898ea54f06d4e2085
BLAKE2b-256 ee349f64281f2261e90e42e55f7fb05f1f3dbbd8a4321c4311396a998d7a00ac

See more details on using hashes here.

File details

Details for the file timer-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: timer-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.0 importlib_metadata/3.7.3 packaging/20.9 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for timer-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4576caa8e5a050ec42d6497262927da54a2e8583636a24d91c7beda023fcb8e7
MD5 b60968fed3bf77b832c1cdd416606b74
BLAKE2b-256 1dd8ea060942c10aab04b862e4e6a855cae6e9f268cc29425263124f73072fc7

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