1{
2 lib,
3 asyncclick,
4 buildPythonPackage,
5 fetchPypi,
6 firebase-messaging,
7 oauthlib,
8 poetry-core,
9 pytest-asyncio,
10 pytest-mock,
11 pytest-socket,
12 pytestCheckHook,
13 pythonOlder,
14 pytz,
15 requests,
16 requests-mock,
17 requests-oauthlib,
18}:
19
20buildPythonPackage rec {
21 pname = "ring-doorbell";
22 version = "0.8.12";
23 pyproject = true;
24
25 disabled = pythonOlder "3.8";
26
27 src = fetchPypi {
28 pname = "ring_doorbell";
29 inherit version;
30 hash = "sha256-CcnGfiJuv3hzez/G/Nu4OyruPL+bbSAtMAfGruqyPUU=";
31 };
32
33 pythonRelaxDeps = [ "requests-oauthlib" ];
34
35 build-system = [ poetry-core ];
36
37 dependencies = [
38 asyncclick
39 oauthlib
40 pytz
41 requests
42 requests-oauthlib
43 ];
44
45 passthru.optional-dependencies = {
46 listen = [ firebase-messaging ];
47 };
48
49 nativeCheckInputs = [
50 pytest-asyncio
51 pytest-mock
52 pytest-socket
53 pytestCheckHook
54 requests-mock
55 ];
56
57 pythonImportsCheck = [ "ring_doorbell" ];
58
59 meta = with lib; {
60 description = "Library to communicate with Ring Door Bell";
61 homepage = "https://github.com/tchellomello/python-ring-doorbell";
62 changelog = "https://github.com/tchellomello/python-ring-doorbell/releases/tag/${version}";
63 license = licenses.lgpl3Plus;
64 maintainers = with maintainers; [ graham33 ];
65 mainProgram = "ring-doorbell";
66 };
67}