takt
takt runs pyperformance benchmarks or your own pyperf scripts. It writes every result to one or more SQL databases at once. It then compares results from these databases and from result files.
Installation
SQLite only:
pip install takt-py
With MariaDB support:
pip install "takt-py[mariadb]"
Quick start
Run the nbody benchmark and store the result under the name baseline <today's UTC date>:
takt run -b nbody --fast --db sqlite:///bench.db --name "baseline {date}"
Store a result file you already have under the name patched:
takt import result.json --db sqlite:///bench.db --name patched
Compare the two runs:
takt compare "baseline 2026-09-25" patched --db sqlite:///bench.db
Configuration file
Put takt.toml in the current directory to avoid repeating --db:
name_template = "nightly {date}"
[targets.local]
url = "sqlite:///bench.db"
With this file, takt run -b nbody --fast stores the result in bench.db under the name nightly <date>.
Compatibility
| takt | Python | pyperf | pyperformance |
|---|---|---|---|
| 0.1.0 | >=3.14 | >=2.10.0,<2.11 | >=1.14.0,<1.15 |
Documentation
The full documentation is in the docs directory. To read it locally:
poetry run mkdocs serve
Development
poetry run pytest
poetry run ruff check .
poetry run ruff format --check .
poetry run flake8 .
poetry run mypy
poetry run mkdocs build --strict
poetry build
A local build with TAKT_MYPYC=1 poetry build copies compiled .so files into src/takt.
Python loads them instead of the .py files, so your later edits have no effect and pytest stops with an error.
Remove them:
find src/takt -name '*.so' -delete
Author
Shamil Abdulaev, Python developer, CPython and glibc contributor: ashm-dev.github.io.
Metadata
Release files for takt-py 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| takt_py-0.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl | CPython 3.14 | CPython 3.14 | Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 | Details |
Release files / takt_py-0.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | takt_py-0.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 13.0 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
bad1a82d4d7dd3c5da79a8065801fb72e881917491a0175569eba4e0a895492e
|
|
BLAKE2b-256 checksum How to use checksums |
be78aed2c25b17d1f86d61b2162916a6705d03a39a3429c44cb62a2e75b846e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|