1{ lib
2, aiolifx
3, async-timeout
4, buildPythonPackage
5, fetchFromGitHub
6, poetry-core
7, pytest-asyncio
8, pytestCheckHook
9, pythonOlder
10, typer
11}:
12
13buildPythonPackage rec {
14 pname = "aiolifx-themes";
15 version = "0.4.5";
16 format = "pyproject";
17
18 disabled = pythonOlder "3.9";
19
20 src = fetchFromGitHub {
21 owner = "Djelibeybi";
22 repo = "aiolifx-themes";
23 rev = "refs/tags/v${version}";
24 hash = "sha256-df3FQdOa3C8eQfgFi+sh7+/GBpE+4B5gOI+3XDQLHEs=";
25 };
26
27 prePatch = ''
28 # Don't run coverage, or depend on typer for no reason.
29 substituteInPlace pyproject.toml \
30 --replace " --cov=aiolifx_themes --cov-report=term-missing:skip-covered" "" \
31 --replace "typer = " "# unused: typer = "
32 '';
33
34 postPatch = ''
35 substituteInPlace pyproject.toml \
36 --replace 'aiolifx = "^0.8.6"' 'aiolifx = "*"'
37 '';
38
39 nativeBuildInputs = [
40 poetry-core
41 ];
42
43 propagatedBuildInputs = [
44 aiolifx
45 ];
46
47 nativeCheckInputs = [
48 async-timeout
49 pytestCheckHook
50 pytest-asyncio
51 ];
52
53 pythonImportsCheck = [
54 "aiolifx_themes"
55 ];
56
57 meta = with lib; {
58 description = "Color themes for LIFX lights running on aiolifx";
59 homepage = "https://github.com/Djelibeybi/aiolifx-themes";
60 changelog = "https://github.com/Djelibeybi/aiolifx-themes/releases/tag/v${version}";
61 license = licenses.mit;
62 maintainers = with maintainers; [ lukegb ];
63 };
64}