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