1{
2 lib,
3 aiohttp,
4 aresponses,
5 buildPythonPackage,
6 fetchFromGitHub,
7 inflection,
8 pyjwt,
9 pytest-asyncio,
10 pytestCheckHook,
11 python-dateutil,
12 pythonOlder,
13}:
14
15buildPythonPackage rec {
16 pname = "python-smarttub";
17 version = "0.0.36";
18 format = "setuptools";
19
20 disabled = pythonOlder "3.8";
21
22 src = fetchFromGitHub {
23 owner = "mdz";
24 repo = pname;
25 rev = "refs/tags/v${version}";
26 hash = "sha256-cng19NW5Eq3arysl0B3dfK2Hy6lQFBFh7g2hxvxeklU=";
27 };
28
29 propagatedBuildInputs = [
30 aiohttp
31 inflection
32 pyjwt
33 python-dateutil
34 ];
35
36 nativeCheckInputs = [
37 aresponses
38 pytest-asyncio
39 pytestCheckHook
40 ];
41
42 postPatch = ''
43 substituteInPlace setup.py \
44 --replace "pyjwt~=2.1.0" "pyjwt>=2.1.0"
45 '';
46
47 pythonImportsCheck = [ "smarttub" ];
48
49 meta = with lib; {
50 description = "Python API for SmartTub enabled hot tubs";
51 homepage = "https://github.com/mdz/python-smarttub";
52 license = with licenses; [ mit ];
53 maintainers = with maintainers; [ fab ];
54 };
55}