Metadata-Version: 2.1
Name: graphtimer
Version: 0.0.4
Summary: Time code execution and graph results
Home-page: https://github.com/Peilonrayz/graphtimer
Author: Peilonrayz
Author-email: peilonrayz@gmail.com
License: MIT
Keywords: timer graph performance
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.7
Description-Content-Type: text/markdown
Provides-Extra: base
Requires-Dist: matplotlib ; extra == 'base'

# graphtimer

This library is based around generating nice graphs for timings.
It's highly modular and provides an interface to quickly and cleanly use modules. 

The high-level interface is the `Plotter` class which takes a timer class as its only argument. The builtin timer is `MultiTimer`, where `TimerNamespace` builds it without you having to. 

From here you have three steps:

1. Time the code by using the timer provided. Usual usage is `repeat`, as `timeit` only times the functions once and skips step 2.
2. Perform the statistical analysis on the timings. Most of the time you'll want to use `min`, which gets the lowest value that isn't an outlier. And shows the error bars from the lowest outlier to Q<sub>3</sub>.
3. Plot the data on the graph. This by default uses `matplotlib` via the `MatPlotLib` class.

```python
import matplotlib.pyplot as plt
from graphtimer import Plotter, TimerNamespace


class ManualListCreation(TimerNamespace):
    def test_comprehension(iterable):
        return [i for i in iterable]

    def test_append(iterable):
        a = []
        append = a.append
        for i in iterable:
            append(i)
        return a


fig, axs = plt.subplots()
(
    Plotter(ManualListCreation)
        .repeat(100, 5, list(range(0, 10001, 1000)), args_conv=range)
        .min()
        .plot(axs)
)
fig.show()
```

## Installation

To install graphtimer, just use pip:

```
$ pip install graphtimer
```

