Welcome to Better Timeit’s documentation!¶
A Better Timeit
- Free software: BSD license
- Documentation: http://bettertimeit.rtfd.org.
Example¶
bettertimeit
will time any function which is named “timeit_<something>”.
The “timeit_” functions may be contained within a function or in a module.
Each “timeit_” function will be timed separately:
from bettertimeit import bettertimeit
def container():
a = 5
def timeit_calculation():
a**10
b = 3
def timeit_calculation_2():
a**b
bettertimeit(container)
To run timings from setup.py, you could add this to setup()
:
setup(
...
timeit_suite="timings",
)
And then run:
% python setup.py timeit
This would run timeit functions in timings.py
.
Features¶
- Lets you write your timing test code as regular code instead of strings, but without the overhead of a function call.
- Put your timing test code in a module or inside a function
- Uses the same method as timeit.main to calculate the optimal number of passes to run.
- Adds a
timeit_suite
option to setup() in setup.py, and a distutils commandtimeit
to run timings from setup.py.
Contents:¶
Installation¶
At the command line:
$ easy_install bettertimeit
Or, if you have virtualenvwrapper installed:
$ mkvirtualenv bettertimeit
$ pip install bettertimeit
Contributing¶
Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given.
You can contribute in many ways:
Types of Contributions¶
Report Bugs¶
Report bugs at https://github.com/simonpercivall/bettertimeit.
If you are reporting a bug, please include:
- Any details about your local setup that might be helpful in troubleshooting.
- Detailed steps to reproduce the bug.
Fix Bugs¶
Look through the GitHub issues for bugs. Anything tagged with “bug” is open to whoever wants to implement it.
Implement Features¶
Look through the GitHub issues for features. Anything tagged with “feature” is open to whoever wants to implement it.
Write Documentation¶
Better Timeit could always use more documentation, whether as part of the official Better Timeit docs, in docstrings, or even on the web in blog posts, articles, and such.
Submit Feedback¶
The best way to send feedback is to file an issueat https://github.com/simonpercivall/bettertimeit/issues.
If you are proposing a feature:
- Explain in detail how it would work.
- Keep the scope as narrow as possible, to make it easier to implement.
- Remember that this is a volunteer-driven project, and that contributions are welcome :)
Get Started!¶
Ready to contribute? Here’s how to set up bettertimeit for local development.
- Check out the repository.
When you’re done making changes, check that your changes pass flake8 and the tests, including testing other Python versions with tox:
$ flake8 bettertimeit tests $ python setup.py test $ tox
To get flake8 and tox, just pip install them into your virtualenv.
Commit and send the patch or create a pull request.
Pull Request Guidelines¶
Before you submit a pull request, check that it meets these guidelines:
- The pull request should include tests.
- If the pull request adds functionality, the docs should be updated. Put your new functionality into a function with a docstring, and add the feature to the list in README.rst.
- The pull request should work for Python 2.7, and 3.3.
Credits¶
Authors¶
- Simon Percivall <percivall@gmail.com>
With code from the Python standard library module timeit
.
History¶
1.1¶
Released: 2014-04-29[general] Add a distutils command to run timings from setup.py. Also add a setup() flag
timeit_suite
to set timeit module in setup.py.¶