1{ lib
2, async-timeout
3, bleak
4, bluetooth-adapters
5, dbus-fast
6, buildPythonPackage
7, fetchFromGitHub
8, poetry-core
9, pytestCheckHook
10, pythonOlder
11, pytest-asyncio
12}:
13
14buildPythonPackage rec {
15 pname = "bleak-retry-connector";
16 version = "3.3.0";
17 format = "pyproject";
18
19 disabled = pythonOlder "3.7";
20
21 src = fetchFromGitHub {
22 owner = "Bluetooth-Devices";
23 repo = pname;
24 rev = "refs/tags/v${version}";
25 hash = "sha256-5yhr+W2ZSy/uSgmz23pyIKcoJ34h/eDsoyv+N9Hi36w=";
26 };
27
28 postPatch = ''
29 substituteInPlace pyproject.toml \
30 --replace " --cov=bleak_retry_connector --cov-report=term-missing:skip-covered" ""
31 '';
32
33 nativeBuildInputs = [
34 poetry-core
35 ];
36
37 propagatedBuildInputs = [
38 async-timeout
39 bleak
40 bluetooth-adapters
41 dbus-fast
42 ];
43
44 nativeCheckInputs = [
45 pytest-asyncio
46 pytestCheckHook
47 ];
48
49 disabledTests = [
50 # broken mocking
51 "test_establish_connection_can_cache_services_services_missing"
52 "test_establish_connection_with_dangerous_use_cached_services"
53 "test_establish_connection_without_dangerous_use_cached_services"
54 ];
55
56 pythonImportsCheck = [
57 "bleak_retry_connector"
58 ];
59
60 meta = with lib; {
61 description = "Connector for Bleak Clients that handles transient connection failures";
62 homepage = "https://github.com/bluetooth-devices/bleak-retry-connector";
63 changelog = "https://github.com/bluetooth-devices/bleak-retry-connector/blob/v${version}/CHANGELOG.md";
64 license = licenses.mit;
65 maintainers = with maintainers; [ fab ];
66 };
67}