Skip to main content

Custom timer for your Python coding pleasure

Project description

code_timer

Simple python timer to use for single lines of code, or entire functions/classes

Latest version Python versions CircleCI

New Features!

  • Use code_timer.Timer as a class, context manager, decorator
    • Offers the most versatility and flexibility for your needs
  • Use separate code_timer.timer decorator
  • Use code_timer.timeit decorator to measure the time to run the same function multiple times
    • Useful when comparing the efficiency of one runtime vs another
    • By default, will run the function 10,000 times. The number of runs is configurable
    • DO NOT USE THIS FOR RECURSIVE FUNCTIONS!!
  • Logger allowing you to set the streaming level or hide the logging entirely

Basic Usage

code_timer.Timer

  1. As a class:

    t = Timer(name="class")
    t.start()
    # Do something
    t.stop()
    
  2. As a context manager:

  • Useful when trying to time a recursive function

    with Timer(name="context manager") as t:
        # Do something
    print(f"Elapsed time: {t.elapsed_time}")
    
  1. As a decorator:

    @Timer(name="decorator")
    def stuff():
        # Do something
    

code_timer.timer

  1. Without braces

    @timer
    def your_func():
        # Do something
    
  2. With braces

    @timer(name="my_timer")
    def your_func():
        # Do something
    

code_timer.timeit

  • Time is reported at logging level: logging.INFO
  • The following assumes the standard formatting for the code_timer logger
  1. Default

    • will repeat the function 10,000 times and report the fastest three runs
    @timeit
    def your_func():
        # Do something
    
    • Output: 2020-03-12 21:56:46: code_timer.INFO - Best 3 of 10000 for your_func: 0.2200 ms; 0.2220 ms; 0.2232 ms
  2. Pass in the number of times to repeat

    @timeit(num_repeats=50)
    def your_func():
        # Do something
    
    • Output: 2020-03-12 21:56:46: code_timer.INFO - Best 3 of 50 for your_func: 0.2200 ms; 0.2220 ms; 0.2232 ms

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

code_timer-1.1.3.tar.gz (4.6 kB view details)

Uploaded Source

File details

Details for the file code_timer-1.1.3.tar.gz.

File metadata

  • Download URL: code_timer-1.1.3.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.3

File hashes

Hashes for code_timer-1.1.3.tar.gz
Algorithm Hash digest
SHA256 bd8b32ec6e38936ea03c9e8b5913875417d40ba044b85ae08579d9aef19aff3a
MD5 af6d715a48992777f135fbc5f3be35bf
BLAKE2b-256 15e1f25f043012d4ff1a133e1c65bcec5dff0eb1ec1d3481f6bcabb1879e84c1

See more details on using hashes here.

Supported by

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