1{
2 lib,
3 async-interrupt,
4 bleak-retry-connector,
5 bleak,
6 bluetooth-adapters,
7 bluetooth-auto-recovery,
8 bluetooth-data-tools,
9 buildPythonPackage,
10 cython,
11 fetchFromGitHub,
12 freezegun,
13 poetry-core,
14 pytest-asyncio,
15 pytest-codspeed,
16 pytest-cov-stub,
17 pytestCheckHook,
18 pythonOlder,
19 setuptools,
20}:
21
22buildPythonPackage rec {
23 pname = "habluetooth";
24 version = "5.6.4";
25 pyproject = true;
26
27 disabled = pythonOlder "3.11";
28
29 src = fetchFromGitHub {
30 owner = "Bluetooth-Devices";
31 repo = "habluetooth";
32 tag = "v${version}";
33 hash = "sha256-j3g0MLVfA8r02EM3rT5GuNE70TdYtdT+5XzqWqi/JM0=";
34 };
35
36 build-system = [
37 cython
38 poetry-core
39 setuptools
40 ];
41
42 dependencies = [
43 async-interrupt
44 bleak
45 bleak-retry-connector
46 bluetooth-adapters
47 bluetooth-auto-recovery
48 bluetooth-data-tools
49 ];
50
51 nativeCheckInputs = [
52 freezegun
53 pytest-asyncio
54 pytest-codspeed
55 pytest-cov-stub
56 pytestCheckHook
57 ];
58
59 pythonImportsCheck = [ "habluetooth" ];
60
61 meta = with lib; {
62 description = "Library for high availability Bluetooth";
63 homepage = "https://github.com/Bluetooth-Devices/habluetooth";
64 changelog = "https://github.com/Bluetooth-Devices/habluetooth/blob/${src.tag}/CHANGELOG.md";
65 license = licenses.asl20;
66 maintainers = with maintainers; [ fab ];
67 };
68}