aboutsummaryrefslogtreecommitdiff
path: root/pyproject.toml
diff options
context:
space:
mode:
Diffstat (limited to 'pyproject.toml')
-rw-r--r--pyproject.toml97
1 files changed, 96 insertions, 1 deletions
diff --git a/pyproject.toml b/pyproject.toml
index 5c9d1535..59c15ea6 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,3 +1,98 @@
[build-system]
-requires = ["setuptools>=42", "wheel", "cmake>=3.18", "ninja"]
+requires = ["setuptools>=42", "cmake>=3.18", "ninja"]
build-backend = "setuptools.build_meta"
+
+
+[tool.check-manifest]
+ignore = [
+ "tests/**",
+ "docs/**",
+ "tools/**",
+ "include/**",
+ ".*",
+ "pybind11/include/**",
+ "pybind11/share/**",
+ "CMakeLists.txt",
+ "noxfile.py",
+]
+
+
+[tool.mypy]
+files = ["pybind11"]
+python_version = "3.6"
+strict = true
+show_error_codes = true
+enable_error_code = ["ignore-without-code", "redundant-expr", "truthy-bool"]
+warn_unreachable = true
+
+[[tool.mypy.overrides]]
+module = ["ghapi.*"]
+ignore_missing_imports = true
+
+
+[tool.pytest.ini_options]
+minversion = "6.0"
+addopts = ["-ra", "--showlocals", "--strict-markers", "--strict-config"]
+xfail_strict = true
+filterwarnings = ["error"]
+log_cli_level = "info"
+testpaths = [
+ "tests",
+]
+timeout=300
+
+
+[tool.pylint]
+master.py-version = "3.6"
+reports.output-format = "colorized"
+messages_control.disable = [
+ "design",
+ "fixme",
+ "imports",
+ "line-too-long",
+ "imports",
+ "invalid-name",
+ "protected-access",
+ "missing-module-docstring",
+ "unused-argument", # covered by Ruff ARG
+]
+
+
+[tool.ruff]
+select = [
+ "E", "F", "W", # flake8
+ "B", # flake8-bugbear
+ "I", # isort
+ "N", # pep8-naming
+ "ARG", # flake8-unused-arguments
+ "C4", # flake8-comprehensions
+ "EM", # flake8-errmsg
+ "ICN", # flake8-import-conventions
+ "ISC", # flake8-implicit-str-concat
+ "PGH", # pygrep-hooks
+ "PIE", # flake8-pie
+ "PL", # pylint
+ "PT", # flake8-pytest-style
+ "RET", # flake8-return
+ "RUF100", # Ruff-specific
+ "SIM", # flake8-simplify
+ "UP", # pyupgrade
+ "YTT", # flake8-2020
+]
+ignore = [
+ "PLR", # Design related pylint
+ "E501", # Line too long (Black is enough)
+ "PT011", # Too broad with raises in pytest
+ "PT004", # Fixture that doesn't return needs underscore (no, it is fine)
+ "SIM118", # iter(x) is not always the same as iter(x.keys())
+]
+target-version = "py37"
+src = ["src"]
+unfixable = ["T20"]
+exclude = []
+line-length = 120
+isort.known-first-party = ["env", "pybind11_cross_module_tests", "pybind11_tests"]
+
+[tool.ruff.per-file-ignores]
+"tests/**" = ["EM", "N"]
+"tests/test_call_policies.py" = ["PLC1901"]