1# Copyright 2021-2023 Google LLC
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#      https://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15[metadata]
16name = bumble
17use_scm_version = True
18description = Bluetooth Stack for Apps, Emulation, Test and Experimentation
19long_description = file: README.md
20long_description_content_type = text/markdown
21author = Google
22author_email = [email protected]
23url = https://github.com/google/bumble
24
25[options]
26python_requires = >=3.8
27packages = bumble, bumble.transport, bumble.transport.grpc_protobuf, bumble.drivers, bumble.profiles, bumble.apps, bumble.apps.link_relay, bumble.pandora, bumble.tools
28package_dir =
29    bumble = bumble
30    bumble.apps = apps
31    bumble.tools = tools
32include_package_data = True
33install_requires =
34    aiohttp ~= 3.8; platform_system!='Emscripten'
35    appdirs >= 1.4; platform_system!='Emscripten'
36    click >= 8.1.3; platform_system!='Emscripten'
37    cryptography == 39; platform_system!='Emscripten'
38    # Pyodide bundles a version of cryptography that is built for wasm, which may not match the
39    # versions available on PyPI. Relax the version requirement since it's better than being
40    # completely unable to import the package in case of version mismatch.
41    cryptography >= 39.0; platform_system=='Emscripten'
42    grpcio >= 1.62.1; platform_system!='Emscripten'
43    humanize >= 4.6.0; platform_system!='Emscripten'
44    libusb1 >= 2.0.1; platform_system!='Emscripten'
45    libusb-package == 1.0.26.1; platform_system!='Emscripten'
46    platformdirs >= 3.10.0; platform_system!='Emscripten'
47    prompt_toolkit >= 3.0.16; platform_system!='Emscripten'
48    prettytable >= 3.6.0; platform_system!='Emscripten'
49    protobuf >= 3.12.4; platform_system!='Emscripten'
50    pyee >= 8.2.2
51    pyserial-asyncio >= 0.5; platform_system!='Emscripten'
52    pyserial >= 3.5; platform_system!='Emscripten'
53    pyusb >= 1.2; platform_system!='Emscripten'
54    websockets >= 12.0; platform_system!='Emscripten'
55
56[options.entry_points]
57console_scripts =
58    bumble-ble-rpa-tool = bumble.apps.ble_rpa_tool:main
59    bumble-console = bumble.apps.console:main
60    bumble-controller-info = bumble.apps.controller_info:main
61    bumble-controller-loopback = bumble.apps.controller_loopback:main
62    bumble-gatt-dump = bumble.apps.gatt_dump:main
63    bumble-hci-bridge = bumble.apps.hci_bridge:main
64    bumble-l2cap-bridge = bumble.apps.l2cap_bridge:main
65    bumble-rfcomm-bridge = bumble.apps.rfcomm_bridge:main
66    bumble-pair = bumble.apps.pair:main
67    bumble-scan = bumble.apps.scan:main
68    bumble-show = bumble.apps.show:main
69    bumble-unbond = bumble.apps.unbond:main
70    bumble-usb-probe = bumble.apps.usb_probe:main
71    bumble-link-relay = bumble.apps.link_relay.link_relay:main
72    bumble-bench = bumble.apps.bench:main
73    bumble-speaker = bumble.apps.speaker.speaker:main
74    bumble-pandora-server = bumble.apps.pandora_server:main
75    bumble-rtk-util = bumble.tools.rtk_util:main
76    bumble-rtk-fw-download = bumble.tools.rtk_fw_download:main
77
78[options.package_data]
79* = py.typed, *.pyi
80
81[options.extras_require]
82build =
83    build >= 0.7
84test =
85    pytest >= 8.2
86    pytest-asyncio >= 0.23.5
87    pytest-html >= 3.2.0
88    coverage >= 6.4
89development =
90    black == 24.3
91    grpcio-tools >= 1.62.1
92    invoke >= 1.7.3
93    mypy == 1.10.0
94    nox >= 2022
95    pylint == 3.1.0
96    pyyaml >= 6.0
97    types-appdirs >= 1.4.3
98    types-invoke >= 1.7.3
99    types-protobuf >= 4.21.0
100    wasmtime == 20.0.0
101avatar =
102    pandora-avatar == 0.0.10
103    rootcanal == 1.10.0 ; python_version>='3.10'
104pandora =
105    bt-test-interfaces >= 0.0.6
106documentation =
107    mkdocs >= 1.4.0
108    mkdocs-material >= 8.5.6
109    mkdocstrings[python] >= 0.19.0
110