1{
2 lib,
3 buildPythonPackage,
4 certifi,
5 chardet,
6 fetchFromGitHub,
7 idna,
8 pythonOlder,
9 requests,
10 setuptools,
11 urllib3,
12}:
13
14buildPythonPackage rec {
15 pname = "frigidaire";
16 version = "0.18.24";
17 pyproject = true;
18
19 disabled = pythonOlder "3.8";
20
21 src = fetchFromGitHub {
22 owner = "bm1549";
23 repo = "frigidaire";
24 tag = version;
25 hash = "sha256-lpwzXeuFPvWV26AIAfzBHY3IiwEc8vThTXc/F0iyV1o=";
26 };
27
28 postPatch = ''
29 substituteInPlace setup.py \
30 --replace-warn 'version = "SNAPSHOT"' 'version = "${version}"'
31 '';
32
33 nativeBuildInputs = [ setuptools ];
34
35 propagatedBuildInputs = [
36 certifi
37 chardet
38 idna
39 requests
40 urllib3
41 ];
42
43 # Project has no tests
44 doCheck = false;
45
46 pythonImportsCheck = [ "frigidaire" ];
47
48 meta = with lib; {
49 description = "Python API for the Frigidaire devices";
50 homepage = "https://github.com/bm1549/frigidaire";
51 changelog = "https://github.com/bm1549/frigidaire/releases/tag/${src.tag}";
52 license = with licenses; [ mit ];
53 maintainers = with maintainers; [ fab ];
54 };
55}