2023-07-10 17:43:49 +08:00
|
|
|
[build-system]
|
|
|
|
requires = ["setuptools", "wheel"]
|
|
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
|
|
|
|
[project]
|
|
|
|
name = "google_benchmark"
|
|
|
|
description = "A library to benchmark code snippets."
|
|
|
|
requires-python = ">=3.8"
|
|
|
|
license = {file = "LICENSE"}
|
|
|
|
keywords = ["benchmark"]
|
|
|
|
|
|
|
|
authors = [
|
|
|
|
{name = "Google", email = "benchmark-discuss@googlegroups.com"},
|
|
|
|
]
|
|
|
|
|
|
|
|
classifiers = [
|
|
|
|
"Development Status :: 4 - Beta",
|
|
|
|
"Intended Audience :: Developers",
|
|
|
|
"Intended Audience :: Science/Research",
|
|
|
|
"License :: OSI Approved :: Apache Software License",
|
|
|
|
"Programming Language :: Python :: 3.8",
|
|
|
|
"Programming Language :: Python :: 3.9",
|
|
|
|
"Programming Language :: Python :: 3.10",
|
|
|
|
"Programming Language :: Python :: 3.11",
|
2023-10-23 20:04:39 +08:00
|
|
|
"Programming Language :: Python :: 3.12",
|
2023-07-10 17:43:49 +08:00
|
|
|
"Topic :: Software Development :: Testing",
|
|
|
|
"Topic :: System :: Benchmark",
|
|
|
|
]
|
|
|
|
|
|
|
|
dynamic = ["readme", "version"]
|
|
|
|
|
|
|
|
dependencies = [
|
|
|
|
"absl-py>=0.7.1",
|
|
|
|
]
|
|
|
|
|
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.
2023-10-30 23:35:37 +08:00
|
|
|
[project.optional-dependencies]
|
|
|
|
dev = [
|
|
|
|
"pre-commit>=3.3.3",
|
|
|
|
]
|
|
|
|
|
2023-07-10 17:43:49 +08:00
|
|
|
[project.urls]
|
|
|
|
Homepage = "https://github.com/google/benchmark"
|
|
|
|
Documentation = "https://github.com/google/benchmark/tree/main/docs"
|
|
|
|
Repository = "https://github.com/google/benchmark.git"
|
|
|
|
Discord = "https://discord.gg/cz7UX7wKC2"
|
|
|
|
|
|
|
|
[tool.setuptools]
|
|
|
|
package-dir = {"" = "bindings/python"}
|
|
|
|
zip-safe = false
|
|
|
|
|
|
|
|
[tool.setuptools.packages.find]
|
|
|
|
where = ["bindings/python"]
|
|
|
|
|
|
|
|
[tool.setuptools.dynamic]
|
|
|
|
version = { attr = "google_benchmark.__version__" }
|
|
|
|
readme = { file = "README.md", content-type = "text/markdown" }
|
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.
2023-10-30 23:35:37 +08:00
|
|
|
|
|
|
|
[tool.black]
|
|
|
|
# Source https://github.com/psf/black#configuration-format
|
|
|
|
include = "\\.pyi?$"
|
|
|
|
line-length = 80
|
|
|
|
target-version = ["py311"]
|
|
|
|
|
|
|
|
# Black-compatible settings for isort
|
|
|
|
# See https://black.readthedocs.io/en/stable/
|
|
|
|
[tool.isort]
|
|
|
|
line_length = "80"
|
|
|
|
profile = "black"
|
|
|
|
|
|
|
|
[tool.mypy]
|
|
|
|
check_untyped_defs = true
|
|
|
|
disallow_incomplete_defs = true
|
|
|
|
pretty = true
|
|
|
|
python_version = "3.11"
|
|
|
|
strict_optional = false
|
|
|
|
warn_unreachable = true
|
|
|
|
|
|
|
|
[[tool.mypy.overrides]]
|
|
|
|
module = ["yaml"]
|
|
|
|
ignore_missing_imports = true
|
|
|
|
|
|
|
|
[tool.ruff]
|
|
|
|
# Enable pycodestyle (`E`) and Pyflakes (`F`) codes by default.
|
|
|
|
select = ["E", "F", "W"]
|
|
|
|
ignore = [
|
|
|
|
# whitespace before colon (:), rely on black for formatting (in particular, allow spaces before ":" in list/array slices)
|
|
|
|
"E203",
|
|
|
|
# line too long, rely on black for reformatting of these, since sometimes URLs or comments can be longer
|
|
|
|
"E501",
|
|
|
|
]
|