1[build-system]
2requires = ["setuptools>=52", "wheel", "setuptools_scm>=6.2"]
3build-backend = "setuptools.build_meta"
4
5[tool.setuptools_scm]
6write_to = "bumble/_version.py"
7
8[tool.pytest.ini_options]
9pythonpath = "."
10testpaths = [
11    "tests"
12]
13
14[tool.pylint.master]
15init-hook = 'import sys; sys.path.append(".")'
16ignore-paths = [
17    '.*_pb2(_grpc)?.py'
18]
19
20[tool.pylint.messages_control]
21max-line-length = "88"
22
23disable = [
24    "broad-except",
25    "fixme",
26    "logging-fstring-interpolation",
27    "logging-not-lazy",
28    "no-member", # Temporary until pylint works better with class/method decorators
29    "no-value-for-parameter", # Temporary until pylint works better with class/method decorators
30    "missing-class-docstring",
31    "missing-function-docstring",
32    "missing-module-docstring",
33    "too-few-public-methods",
34    "too-many-arguments",
35    "too-many-branches",
36    "too-many-instance-attributes",
37    "too-many-lines",
38    "too-many-locals",
39    "too-many-public-methods",
40    "too-many-statements",
41]
42
43[tool.pylint.main]
44ignore="pandora" # FIXME: pylint does not support stubs yet:
45
46[tool.pylint.typecheck]
47signature-mutators="AsyncRunner.run_in_task"
48
49[tool.black]
50skip-string-normalization = true
51extend-exclude = '''
52(
53  .*_pb2(_grpc)?.py  # exclude autogenerated Protocol Buffer files anywhere in the project
54)
55'''
56
57[tool.mypy]
58exclude = ['bumble/transport/grpc_protobuf']
59
60[[tool.mypy.overrides]]
61module = "bumble.transport.grpc_protobuf.*"
62ignore_errors = true
63
64[[tool.mypy.overrides]]
65module = "aioconsole.*"
66ignore_missing_imports = true
67
68[[tool.mypy.overrides]]
69module = "construct.*"
70ignore_missing_imports = true
71
72[[tool.mypy.overrides]]
73module = "grpc.*"
74ignore_missing_imports = true
75
76[[tool.mypy.overrides]]
77module = "serial_asyncio.*"
78ignore_missing_imports = true
79
80[[tool.mypy.overrides]]
81module = "usb.*"
82ignore_missing_imports = true
83
84[[tool.mypy.overrides]]
85module = "usb1.*"
86ignore_missing_imports = true
87
88