1{
2 lib,
3 bleak,
4 bleak-retry-connector,
5 bluetooth-sensor-state-data,
6 buildPythonPackage,
7 events,
8 fetchFromGitHub,
9 freezegun,
10 home-assistant-bluetooth,
11 poetry-core,
12 pytest-asyncio,
13 pytest-cov-stub,
14 pytest-mock,
15 pytestCheckHook,
16 pythonOlder,
17 transitions,
18}:
19
20buildPythonPackage rec {
21 pname = "pysnooz";
22 version = "0.10.0";
23 format = "pyproject";
24
25 disabled = pythonOlder "3.9";
26
27 src = fetchFromGitHub {
28 owner = "AustinBrunkhorst";
29 repo = "pysnooz";
30 tag = "v${version}";
31 hash = "sha256-jOXmaJprU35sdNRrBBx/YUyiDyyaE1qodWksXkTSEe0=";
32 };
33
34 postPatch = ''
35 substituteInPlace pyproject.toml \
36 --replace 'transitions = "^0.8.11"' 'transitions = ">=0.8.11"' \
37 --replace 'Events = "^0.4"' 'Events = ">=0.4"'
38 '';
39
40 nativeBuildInputs = [ poetry-core ];
41
42 propagatedBuildInputs = [
43 bleak
44 bleak-retry-connector
45 bluetooth-sensor-state-data
46 events
47 home-assistant-bluetooth
48 transitions
49 ];
50
51 nativeCheckInputs = [
52 freezegun
53 pytest-asyncio
54 pytest-cov-stub
55 pytest-mock
56 pytestCheckHook
57 ];
58
59 pythonImportsCheck = [ "pysnooz" ];
60
61 meta = with lib; {
62 description = "Library to control SNOOZ white noise machines";
63 homepage = "https://github.com/AustinBrunkhorst/pysnooz";
64 changelog = "https://github.com/AustinBrunkhorst/pysnooz/blob/v${version}/CHANGELOG.md";
65 license = with licenses; [ mit ];
66 maintainers = with maintainers; [ fab ];
67 };
68}