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.0.tar.gz (2.8 kB view details)

Uploaded Source

Built Distribution

timer-0.1.0-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: timer-0.1.0.tar.gz
  • Upload date:
  • Size: 2.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for timer-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6413bbf0b1b4fa42f14931a6d7cf256eaa0df446790b487756e55c67f2877860
MD5 d68212a766e4d24ee027f1f0cc1513de
BLAKE2b-256 3069f4251097de27bdcd43b6caf05de44053f40f397e51b388e1f762f99bb583

See more details on using hashes here.

File details

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

File metadata

  • Download URL: timer-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for timer-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5eaff6ff97e1a3bd8db3a25210c6d6bab14cf73042ef5200d9861a92a83ec132
MD5 40c093adc8b9fdc3b1c671a7c7502e8e
BLAKE2b-256 3b8c66aa81103368489e7d0d36748c6ba9004471abe7a182221f323f7b0aab4c

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