1{
2 lib,
3 aiofiles,
4 aiohttp,
5 aioresponses,
6 aiounittest,
7 buildPythonPackage,
8 ciso8601,
9 fetchFromGitHub,
10 freenub,
11 poetry-core,
12 propcache,
13 pyjwt,
14 pytest-asyncio,
15 pytest-cov-stub,
16 pytest-freezegun,
17 pytestCheckHook,
18 python-dateutil,
19 python-socketio,
20 requests-mock,
21 requests,
22 typing-extensions,
23}:
24
25buildPythonPackage rec {
26 pname = "yalexs";
27 version = "9.2.0";
28 pyproject = true;
29
30 src = fetchFromGitHub {
31 owner = "bdraco";
32 repo = "yalexs";
33 tag = "v${version}";
34 hash = "sha256-t7C2x3aH3ltDthBlt+ghSj9SEfZ4jm4Fgs0KAIm7cBA=";
35 };
36
37 build-system = [ poetry-core ];
38
39 pythonRelaxDeps = [ "aiohttp" ];
40
41 dependencies = [
42 aiofiles
43 aiohttp
44 ciso8601
45 freenub
46 propcache
47 pyjwt
48 python-dateutil
49 python-socketio
50 requests
51 typing-extensions
52 ]
53 ++ python-socketio.optional-dependencies.asyncio_client;
54
55 nativeCheckInputs = [
56 aioresponses
57 aiounittest
58 pytest-asyncio
59 pytest-cov-stub
60 pytest-freezegun
61 pytestCheckHook
62 requests-mock
63 ];
64
65 pythonImportsCheck = [ "yalexs" ];
66
67 meta = with lib; {
68 description = "Python API for Yale Access (formerly August) Smart Lock and Doorbell";
69 homepage = "https://github.com/bdraco/yalexs";
70 changelog = "https://github.com/bdraco/yalexs/blob/${src.tag}/CHANGELOG.md";
71 license = with licenses; [ mit ];
72 maintainers = with maintainers; [ fab ];
73 };
74}