Skip to main content

A programmatic approach to function runtime estimation.

Project description

functimer

A programmatic approach to function runtime estimation.

PyPI version codecov Language grade: Python Codacy Badge Code style: black


About

This package first came about as a way to serve my needs during an Algorithms class in college.
It started as a function that stored time elapsed results in a global dictionary, where the key was a tuple of the functions name and return value. Now it's just a bit different.

Installation

  • PYPI:

        pip install functimer
    
  • Manual:

        poetry install --no-dev
        poetry build
        pip install dist/*.whl
    

How to install Poetry.

Quick Example

Comprehensive Examples in examples/

  • Python

        @timed(unit=Unit.SECOND, number=1)
        def timed_sleep(seconds):
            sleep(seconds)
    
        runtime = timed_sleep(1)
        "1.00 s"
    
  • Command Line

      $ python -m functimer "sum([1, 2, 3])"
      Average runtime of 10,000 executions: 0.15 µs
    
      $ python -m functimer "sum([1, 2, 3])" --return
      Average runtime of 10,000 executions: 0.15 µs
      sum([1, 2, 3]) -> 6
    
      $ python -m functimer "(lambda x: x+x)(10)" --return
      Average runtime of 10,000 executions: 0.14 µs
      (lambda x: x+x)(10) -> 20
    
      $ python -m functimer "functimer.util.get_unit('1.00 s')" --return
      Average runtime of 10,000 executions: 0.50 µs
      functimer.util.get_unit('1.00 s') -> Unit.SECOND
    
      $ python -m functimer "functimer.classes.Unit.from_str('s')" --return
      Average runtime of 10,000 executions: 0.25 µs
      functimer.classes.Unit.from_str('s') -> Unit.SECOND
    

Tests

Run tox in the root directory of the repo.

License

MIT

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

functimer-1.3.1.tar.gz (9.2 kB view hashes)

Uploaded Source

Built Distribution

functimer-1.3.1-py3-none-any.whl (12.3 kB view hashes)

Uploaded Python 3

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