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