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