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 pythonOlder,
21 requests-mock,
22 requests,
23 typing-extensions,
24}:
25
26buildPythonPackage rec {
27 pname = "yalexs";
28 version = "8.11.0";
29 pyproject = true;
30
31 disabled = pythonOlder "3.9";
32
33 src = fetchFromGitHub {
34 owner = "bdraco";
35 repo = "yalexs";
36 tag = "v${version}";
37 hash = "sha256-ajKe0pIUV2xwFi49MR4NK19G1DZ84e6oSJQIGlXq+Vo=";
38 };
39
40 build-system = [ poetry-core ];
41
42 pythonRelaxDeps = [ "aiohttp" ];
43
44 dependencies = [
45 aiofiles
46 aiohttp
47 ciso8601
48 freenub
49 propcache
50 pyjwt
51 python-dateutil
52 python-socketio
53 requests
54 typing-extensions
55 ] ++ python-socketio.optional-dependencies.asyncio_client;
56
57 nativeCheckInputs = [
58 aioresponses
59 aiounittest
60 pytest-asyncio
61 pytest-cov-stub
62 pytest-freezegun
63 pytestCheckHook
64 requests-mock
65 ];
66
67 pythonImportsCheck = [ "yalexs" ];
68
69 meta = with lib; {
70 description = "Python API for Yale Access (formerly August) Smart Lock and Doorbell";
71 homepage = "https://github.com/bdraco/yalexs";
72 changelog = "https://github.com/bdraco/yalexs/blob/${src.rev}/CHANGELOG.md";
73 license = with licenses; [ mit ];
74 maintainers = with maintainers; [ fab ];
75 };
76}