# Copyright 2021-2023 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

[metadata]
name = bumble
use_scm_version = True
description = Bluetooth Stack for Apps, Emulation, Test and Experimentation
long_description = file: README.md
long_description_content_type = text/markdown
author = Google
author_email = tbd@tbd.com
url = https://github.com/google/bumble

[options]
python_requires = >=3.8
packages = bumble, bumble.transport, bumble.transport.grpc_protobuf, bumble.drivers, bumble.profiles, bumble.apps, bumble.apps.link_relay, bumble.pandora, bumble.tools
package_dir =
    bumble = bumble
    bumble.apps = apps
    bumble.tools = tools
include_package_data = True
install_requires =
    aiohttp ~= 3.8; platform_system!='Emscripten'
    appdirs >= 1.4; platform_system!='Emscripten'
    bt-test-interfaces >= 0.0.2; 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.57.0; 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 >= 8.2.2
    pyserial-asyncio >= 0.5; platform_system!='Emscripten'
    pyserial >= 3.5; platform_system!='Emscripten'
    pyusb >= 1.2; platform_system!='Emscripten'
    websockets >= 8.1; platform_system!='Emscripten'

[options.entry_points]
console_scripts =
    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-gatt-dump = bumble.apps.gatt_dump:main
    bumble-hci-bridge = bumble.apps.hci_bridge:main
    bumble-l2cap-bridge = bumble.apps.l2cap_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-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

[options.package_data]
* = py.typed, *.pyi

[options.extras_require]
build =
    build >= 0.7
test =
    pytest >= 6.2
    pytest-asyncio >= 0.17
    pytest-html >= 3.2.0
    coverage >= 6.4
development =
    black == 22.10
    grpcio-tools >= 1.57.0
    invoke >= 1.7.3
    mypy == 1.5.0
    nox >= 2022
    pylint == 2.15.8
    pyyaml >= 6.0
    types-appdirs >= 1.4.3
    types-invoke >= 1.7.3
    types-protobuf >= 4.21.0
avatar =
    pandora-avatar == 0.0.5
    rootcanal == 1.3.0 ; python_version>='3.10'
documentation =
    mkdocs >= 1.4.0
    mkdocs-material >= 8.5.6
    mkdocstrings[python] >= 0.19.0
