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