• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1[build-system]
2requires = ["setuptools<73"]
3build-backend = "setuptools.build_meta"
4
5[project]
6name = "google_benchmark"
7description = "A library to benchmark code snippets."
8requires-python = ">=3.10"
9license = { file = "LICENSE" }
10keywords = ["benchmark"]
11
12authors = [{ name = "Google", email = "benchmark-discuss@googlegroups.com" }]
13
14classifiers = [
15    "Development Status :: 4 - Beta",
16    "Intended Audience :: Developers",
17    "Intended Audience :: Science/Research",
18    "License :: OSI Approved :: Apache Software License",
19    "Programming Language :: Python :: 3.10",
20    "Programming Language :: Python :: 3.11",
21    "Programming Language :: Python :: 3.12",
22    "Topic :: Software Development :: Testing",
23    "Topic :: System :: Benchmark",
24]
25
26dynamic = ["readme", "version"]
27
28dependencies = ["absl-py>=0.7.1"]
29
30[project.optional-dependencies]
31dev = ["pre-commit>=3.3.3"]
32
33[project.urls]
34Homepage = "https://github.com/google/benchmark"
35Documentation = "https://github.com/google/benchmark/tree/main/docs"
36Repository = "https://github.com/google/benchmark.git"
37Discord = "https://discord.gg/cz7UX7wKC2"
38
39[tool.setuptools]
40package-dir = { "" = "bindings/python" }
41zip-safe = false
42
43[tool.setuptools.packages.find]
44where = ["bindings/python"]
45
46[tool.setuptools.dynamic]
47readme = { file = "README.md", content-type = "text/markdown" }
48version = { attr = "google_benchmark.__version__" }
49
50[tool.mypy]
51check_untyped_defs = true
52disallow_incomplete_defs = true
53pretty = true
54python_version = "3.11"
55strict_optional = false
56warn_unreachable = true
57
58[[tool.mypy.overrides]]
59module = ["yaml"]
60ignore_missing_imports = true
61
62[tool.ruff]
63# explicitly tell ruff the source directory to correctly identify first-party package.
64src = ["bindings/python"]
65
66line-length = 80
67target-version = "py311"
68
69[tool.ruff.lint]
70# Enable pycodestyle (`E`, `W`), Pyflakes (`F`), and isort (`I`) codes by default.
71select = ["E", "F", "I", "W"]
72ignore = [
73    "E501", # line too long
74]
75
76[tool.ruff.lint.isort]
77combine-as-imports = true
78