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