# Copyright 2021-2022 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.profiles, bumble.apps, bumble.apps.link_relay, bumble.pandora
package_dir =
    bumble = bumble
    bumble.apps = apps
include-package-data = True
install_requires =
    appdirs >= 1.4
    click >= 7.1.2; platform_system!='Emscripten'
    cryptography == 35; platform_system!='Emscripten'
    grpcio == 1.51.1; platform_system!='Emscripten'
    libusb1 >= 2.0.1; platform_system!='Emscripten'
    libusb-package == 1.0.26.1; platform_system!='Emscripten'
    prompt_toolkit >= 3.0.16; platform_system!='Emscripten'
    protobuf >= 3.12.4
    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'
    prettytable >= 3.6.0
    humanize >= 4.6.0
    bt-test-interfaces >= 0.0.2

[options.entry_points]
console_scripts =
    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-pandora-server = bumble.apps.pandora_server: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.51.1
    invoke >= 1.7.3
    mypy == 1.2.0
    nox >= 2022
    pylint == 2.15.8
    types-appdirs >= 1.4.3
    types-invoke >= 1.7.3
    types-protobuf >= 4.21.0
documentation =
    mkdocs >= 1.4.0
    mkdocs-material >= 8.5.6
    mkdocstrings[python] >= 0.19.0
