1{
2 lib,
3 async-timeout,
4 buildPythonPackage,
5 fetchFromGitHub,
6 pytest-asyncio,
7 pytest-mock,
8 pytestCheckHook,
9 pythonOlder,
10}:
11
12buildPythonPackage {
13 pname = "pescea";
14 version = "1.0.12";
15 format = "setuptools";
16
17 disabled = pythonOlder "3.7";
18
19 src = fetchFromGitHub {
20 owner = "lazdavila";
21 repo = "pescea";
22 # https://github.com/lazdavila/pescea/issues/4
23 rev = "a3dd7deedc64205e24adbc4ff406a2f6aed3b240";
24 hash = "sha256-5TkFrGaSkQOORhf5a7SjkzggFLPyqe9k3M0B4ljhWTQ=";
25 };
26
27 propagatedBuildInputs = [ async-timeout ];
28
29 nativeCheckInputs = [
30 pytest-asyncio
31 pytest-mock
32 pytestCheckHook
33 ];
34
35 postPatch = ''
36 # https://github.com/lazdavila/pescea/pull/1
37 substituteInPlace setup.py \
38 --replace '"asyncio",' ""
39 '';
40
41 disabledTests = [
42 # AssertionError: assert <State.BUSY: 'BusyWaiting'>...
43 "test_updates_while_busy"
44 # Test requires network access
45 "test_flow_control"
46 ];
47
48 pythonImportsCheck = [ "pescea" ];
49
50 meta = with lib; {
51 description = "Python interface to Escea fireplaces";
52 homepage = "https://github.com/lazdavila/pescea";
53 license = licenses.gpl3Plus;
54 maintainers = with maintainers; [ fab ];
55 };
56}