aboutsummaryrefslogtreecommitdiff
path: root/bindings/python/google_benchmark/example.py
diff options
context:
space:
mode:
authorNicholas Junge <nicholas.junge@web.de>2023-10-30 16:35:37 +0100
committerGitHub <noreply@github.com>2023-10-30 15:35:37 +0000
commitb93f5a592972b9017539cf15a5d299149c1cc2f4 (patch)
tree700125b32b68f663097ab6b13f2e51219d40f8d0 /bindings/python/google_benchmark/example.py
parentb219e18b91b4279a582abb9195a1fefc5d8838c0 (diff)
downloadgoogle-benchmark-b93f5a592972b9017539cf15a5d299149c1cc2f4.tar.gz
google-benchmark-b93f5a592972b9017539cf15a5d299149c1cc2f4.zip
Add pre-commit config and GitHub Actions job (#1688)
* Add pre-commit config and GitHub Actions job Contains the following hooks: * buildifier - for formatting and linting Bazel files. * mypy, ruff, isort, black - for Python typechecking, import hygiene, static analysis, and formatting. The pylint CI job was changed to be a pre-commit CI job, where pre-commit is bootstrapped via Python. Pylint is currently no longer part of the code checks, but can be re-added if requested. The reason to drop was that it does not play nicely with pre-commit, and lots of its functionality and responsibilities are actually covered in ruff. * Add dev extra to pyproject.toml for development installs * Clarify that pre-commit contains only Python and Bazel hooks * Add one-line docstrings to Bazel modules * Apply buildifier pre-commit fixes to Bazel files * Apply pre-commit fixes to Python files * Supply --profile=black to isort to prevent conflicts * Fix nanobind build file formatting * Add tooling configs to `pyproject.toml` In particular, set line length 80 for all Python files. * Reformat all Python files to line length 80, fix return type annotations Also ignores the `tools/compare.py` and `tools/gbench/report.py` files for mypy, since they emit a barrage of errors which we can deal with later. The errors are mostly related to dynamic classmethod definition.
Diffstat (limited to 'bindings/python/google_benchmark/example.py')
-rw-r--r--bindings/python/google_benchmark/example.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/bindings/python/google_benchmark/example.py b/bindings/python/google_benchmark/example.py
index d95a043..b5b2f88 100644
--- a/bindings/python/google_benchmark/example.py
+++ b/bindings/python/google_benchmark/example.py
@@ -38,6 +38,7 @@ def sum_million(state):
while state:
sum(range(1_000_000))
+
@benchmark.register
def pause_timing(state):
"""Pause timing every iteration."""
@@ -85,7 +86,9 @@ def custom_counters(state):
# Set a counter as a rate.
state.counters["foo_rate"] = Counter(num_foo, Counter.kIsRate)
# Set a counter as an inverse of rate.
- state.counters["foo_inv_rate"] = Counter(num_foo, Counter.kIsRate | Counter.kInvert)
+ state.counters["foo_inv_rate"] = Counter(
+ num_foo, Counter.kIsRate | Counter.kInvert
+ )
# Set a counter as a thread-average quantity.
state.counters["foo_avg"] = Counter(num_foo, Counter.kAvgThreads)
# There's also a combined flag: