Metadata-Version: 2.0
Name: bench-it
Version: 1.0.0
Summary: Quick and easy python benchmarking.
Home-page: http://github.com/scuml/benchit
Author: Stephen Mitchell
Author-email: stephen@echodot.com
License: Copyright 2016-2018 Stephen Mitchell

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Description: ## benchit - Quick n' Easy Python Benchmarking
        
        Quickly find where your code is spending its time.
        
        [![Build Status](https://secure.travis-ci.org/scuml/benchit.png?branch=master)](http://travis-ci.org/scuml/benchit)
        
        Benchit is intended to be a minimalistic library that times how long it takes to get from point A to point B.  It helps detect unoptimized code.
        
        Benchit is only compatible with python 3.  For python 2 support, use benchit==0.2.6 (https://pypi.python.org/pypi/bench-it/0.2.6)
        
        ### Installation
        
            pip install bench-it
        
        ### Example
        
            from benchit import BenchIt
            from time import sleep
        
        
            def demo_benchmark():
                b = BenchIt()  # starts the timer
        
                # do stuff
                sleep(1); b()  # Add marker after this code.  Code used as marker name.
        
                sleep(.2);
                sleep(.3);
                sleep(.4);
                b("More stuff done")  # Add a custom named marker
        
                for i in range(1, 5):
                  sleep(.1); b()  # Code can be marked in a loop
        
                b.display()  # Display output as a table
        
        
            demo_benchmark()
        
        
            BenchIt
            +-----------------+----------------+------------+------+----------+---------+---------+
            | Marker          | Method         |       Line | Hits | Avg Time | Runtime | Percent |
            +-----------------+----------------+------------+------+----------+---------+---------+
            | sleep(1)        | demo_benchmark |  demo.py:9 |    1 |  1.01341 | 1.01341 |   43.33 |
            | More stuff Done | demo_benchmark | demo.py:14 |    1 |  0.91278 | 0.91278 |   39.03 |
            | sleep(.1)       | demo_benchmark | demo.py:17 |    4 |  0.10306 | 0.41223 |   17.63 |
            +-----------------+----------------+------------+------+----------+---------+---------+
            Total runtime: 2.33860
        
        ### How to Use
        
        Instantiating the class starts the timer.  BenchIt is run as a singleton.  Re-instantiating anywhere in your code will pull in the previously instantiated timer.  To create a new timer, initialize BenchIt with a unique name.
        
            b = BenchIt()
        
            b2 = BenchIt()  # b == b2
        
            b3 = BenchIt("Timer A")  # b != b3
        
        
        Set a marker after some code.
        
            call_a_method(); b()  # Quickly add a marker after a method
        
            method1()
            method2()
            b("Two methods called")  # Or create a manual marker after a chunk of code
        
        Stop and display the table for analysis.
        
            b.display()
        
        ### Methods
        
        `benchit.__init__()` Instantiate and start the timer.
        
        `benchit.__call__(marker_name)` Add marker at this point.
        
        `benchit.stop()` Optionally, stop the timer at a point.
        
        `benchit.display()` Display the table.  Stops the timer if running.
        
        
        ### Credits
        * Special thanks Luke Maurits for [prettytable](https://pypi.python.org/pypi/PrettyTable)*
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Topic :: Software Development
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
