mirror of
https://github.com/google/bumble.git
synced 2026-04-16 00:25:31 +00:00
206 lines
6.1 KiB
TOML
206 lines
6.1 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=61", "wheel", "setuptools_scm>=8"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "bumble"
|
|
dynamic = ["version"]
|
|
description = "Bluetooth Stack for Apps, Emulation, Test and Experimentation"
|
|
readme = "README.md"
|
|
authors = [{ name = "Google", email = "bumble-dev@google.com" }]
|
|
requires-python = ">=3.8"
|
|
dependencies = [
|
|
"aiohttp ~= 3.8; platform_system!='Emscripten'",
|
|
"appdirs >= 1.4; platform_system!='Emscripten'",
|
|
"click >= 8.1.3; platform_system!='Emscripten'",
|
|
"cryptography >= 39; platform_system!='Emscripten'",
|
|
# Pyodide bundles a version of cryptography that is built for wasm, which may not match the
|
|
# versions available on PyPI. Relax the version requirement since it's better than being
|
|
# completely unable to import the package in case of version mismatch.
|
|
"cryptography >= 39.0; platform_system=='Emscripten'",
|
|
"grpcio >= 1.62.1; platform_system!='Emscripten'",
|
|
"humanize >= 4.6.0; platform_system!='Emscripten'",
|
|
"libusb1 >= 2.0.1; platform_system!='Emscripten'",
|
|
"libusb-package == 1.0.26.1; platform_system!='Emscripten'",
|
|
"platformdirs >= 3.10.0; platform_system!='Emscripten'",
|
|
"prompt_toolkit >= 3.0.16; platform_system!='Emscripten'",
|
|
"prettytable >= 3.6.0; platform_system!='Emscripten'",
|
|
"protobuf >= 3.12.4; platform_system!='Emscripten'",
|
|
"pyee >= 13.0.0",
|
|
"pyserial-asyncio >= 0.5; platform_system!='Emscripten'",
|
|
"pyserial >= 3.5; platform_system!='Emscripten'",
|
|
"pyusb >= 1.2; platform_system!='Emscripten'",
|
|
"websockets == 13.1; platform_system!='Emscripten'",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
build = ["build >= 0.7"]
|
|
test = [
|
|
"pytest >= 8.2",
|
|
"pytest-asyncio >= 0.23.5",
|
|
"pytest-html >= 3.2.0",
|
|
"coverage >= 6.4",
|
|
]
|
|
development = [
|
|
"black == 24.3",
|
|
"bt-test-interfaces >= 0.0.6",
|
|
"grpcio-tools >= 1.62.1",
|
|
"invoke >= 1.7.3",
|
|
"mobly >= 1.12.2",
|
|
"mypy == 1.12.0",
|
|
"nox >= 2022",
|
|
"pylint == 3.3.1",
|
|
"pyyaml >= 6.0",
|
|
"types-appdirs >= 1.4.3",
|
|
"types-invoke >= 1.7.3",
|
|
"types-protobuf >= 4.21.0",
|
|
]
|
|
avatar = [
|
|
"pandora-avatar == 0.0.10",
|
|
"rootcanal == 1.11.1 ; python_version>='3.10'",
|
|
]
|
|
pandora = ["bt-test-interfaces >= 0.0.6"]
|
|
documentation = [
|
|
"mkdocs >= 1.6.0",
|
|
"mkdocs-material >= 9.6",
|
|
"mkdocstrings[python] >= 0.27.0",
|
|
]
|
|
auracast = [
|
|
"lc3py >= 1.1.3; python_version>='3.10' and ((platform_system=='Linux' and platform_machine=='x86_64') or (platform_system=='Darwin' and platform_machine=='arm64'))",
|
|
"sounddevice >= 0.5.1",
|
|
]
|
|
|
|
[project.scripts]
|
|
bumble-auracast = "bumble.apps.auracast:main"
|
|
bumble-ble-rpa-tool = "bumble.apps.ble_rpa_tool:main"
|
|
bumble-console = "bumble.apps.console:main"
|
|
bumble-controller-info = "bumble.apps.controller_info:main"
|
|
bumble-controller-loopback = "bumble.apps.controller_loopback:main"
|
|
bumble-gatt-dump = "bumble.apps.gatt_dump:main"
|
|
bumble-hci-bridge = "bumble.apps.hci_bridge:main"
|
|
bumble-l2cap-bridge = "bumble.apps.l2cap_bridge:main"
|
|
bumble-rfcomm-bridge = "bumble.apps.rfcomm_bridge:main"
|
|
bumble-pair = "bumble.apps.pair:main"
|
|
bumble-scan = "bumble.apps.scan:main"
|
|
bumble-show = "bumble.apps.show:main"
|
|
bumble-unbond = "bumble.apps.unbond:main"
|
|
bumble-usb-probe = "bumble.apps.usb_probe:main"
|
|
bumble-link-relay = "bumble.apps.link_relay.link_relay:main"
|
|
bumble-bench = "bumble.apps.bench:main"
|
|
bumble-player = "bumble.apps.player.player:main"
|
|
bumble-speaker = "bumble.apps.speaker.speaker:main"
|
|
bumble-pandora-server = "bumble.apps.pandora_server:main"
|
|
bumble-rtk-util = "bumble.tools.rtk_util:main"
|
|
bumble-rtk-fw-download = "bumble.tools.rtk_fw_download:main"
|
|
bumble-intel-util = "bumble.tools.intel_util:main"
|
|
bumble-intel-fw-download = "bumble.tools.intel_fw_download:main"
|
|
|
|
|
|
[project.urls]
|
|
Homepage = "https://github.com/google/bumble"
|
|
|
|
[tool.setuptools]
|
|
packages = [
|
|
"bumble",
|
|
"bumble.transport",
|
|
"bumble.transport.grpc_protobuf",
|
|
"bumble.drivers",
|
|
"bumble.profiles",
|
|
"bumble.apps",
|
|
"bumble.apps.link_relay",
|
|
"bumble.pandora",
|
|
"bumble.tools",
|
|
]
|
|
|
|
[tool.setuptools.package-dir]
|
|
"bumble" = "bumble"
|
|
"bumble.apps" = "apps"
|
|
"bumble.tools" = "tools"
|
|
|
|
[tool.setuptools_scm]
|
|
write_to = "bumble/_version.py"
|
|
|
|
[tool.setuptools.package-data]
|
|
"*" = ["*.pyi", "py.typed"]
|
|
|
|
[tool.pytest.ini_options]
|
|
pythonpath = "."
|
|
testpaths = ["tests"]
|
|
|
|
[tool.pylint.master]
|
|
init-hook = 'import sys; sys.path.append(".")'
|
|
ignore-paths = ['.*_pb2(_grpc)?.py']
|
|
|
|
[tool.pylint.messages_control]
|
|
max-line-length = "88"
|
|
|
|
disable = [
|
|
"broad-except",
|
|
"fixme",
|
|
"logging-fstring-interpolation",
|
|
"logging-not-lazy",
|
|
"no-member", # Temporary until pylint works better with class/method decorators
|
|
"no-value-for-parameter", # Temporary until pylint works better with class/method decorators
|
|
"missing-class-docstring",
|
|
"missing-function-docstring",
|
|
"missing-module-docstring",
|
|
"too-few-public-methods",
|
|
"too-many-arguments",
|
|
"too-many-branches",
|
|
"too-many-instance-attributes",
|
|
"too-many-lines",
|
|
"too-many-locals",
|
|
"too-many-public-methods",
|
|
"too-many-statements",
|
|
]
|
|
|
|
[tool.pylint.main]
|
|
ignore=["pandora", "mobly"] # FIXME: pylint does not support stubs yet
|
|
|
|
[tool.pylint.typecheck]
|
|
signature-mutators = "AsyncRunner.run_in_task"
|
|
disable = "not-callable"
|
|
|
|
[tool.black]
|
|
skip-string-normalization = true
|
|
extend-exclude = '''
|
|
(
|
|
.*_pb2(_grpc)?.py # exclude autogenerated Protocol Buffer files anywhere in the project
|
|
)
|
|
'''
|
|
|
|
[tool.mypy]
|
|
exclude = ['bumble/transport/grpc_protobuf', 'examples/mobly/bench']
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = "bumble.transport.grpc_protobuf.*"
|
|
ignore_errors = true
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = "aioconsole.*"
|
|
ignore_missing_imports = true
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = "construct.*"
|
|
ignore_missing_imports = true
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = "grpc.*"
|
|
ignore_missing_imports = true
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = "serial_asyncio.*"
|
|
ignore_missing_imports = true
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = "sounddevice.*"
|
|
ignore_missing_imports = true
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = "usb.*"
|
|
ignore_missing_imports = true
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = "usb1.*"
|
|
ignore_missing_imports = true
|