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