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