1{
2 lib,
3 buildPythonPackage,
4 colorlog,
5 fetchFromGitHub,
6 pytest-sugar,
7 pytest-timeout,
8 pytestCheckHook,
9 pythonAtLeast,
10 pythonOlder,
11 requests,
12 requests-mock,
13 setuptools,
14}:
15
16buildPythonPackage rec {
17 pname = "skybellpy";
18 version = "0.6.3";
19 pyproject = true;
20
21 # Still uses distrutils, https://github.com/MisterWil/skybellpy/issues/22
22 disabled = pythonOlder "3.6" || pythonAtLeast "3.12";
23
24 src = fetchFromGitHub {
25 owner = "MisterWil";
26 repo = "skybellpy";
27 rev = "refs/tags/v${version}";
28 hash = "sha256-/+9KYxXYTN0T6PoccAA/pwdwWqOzCSZdNxj6xi6oG74=";
29 };
30
31 build-system = [ setuptools ];
32
33 dependencies = [
34 colorlog
35 requests
36 ];
37
38 nativeCheckInputs = [
39 pytest-sugar
40 pytest-timeout
41 pytestCheckHook
42 requests-mock
43 ];
44
45 pythonImportsCheck = [ "skybellpy" ];
46
47 meta = with lib; {
48 description = "Python wrapper for the Skybell alarm API";
49 homepage = "https://github.com/MisterWil/skybellpy";
50 changelog = "https://github.com/MisterWil/skybellpy/releases/tag/v${version}";
51 license = licenses.mit;
52 maintainers = with maintainers; [ fab ];
53 mainProgram = "skybellpy";
54 };
55}