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