1{ lib
2, aiohttp
3, aresponses
4, backoff
5, beautifulsoup4
6, buildPythonPackage
7, docutils
8, fetchFromGitHub
9, poetry-core
10, pytest-aiohttp
11, pytest-asyncio
12, pytestCheckHook
13, pythonOlder
14, pytz
15, types-pytz
16, voluptuous
17, websockets
18}:
19
20buildPythonPackage rec {
21 pname = "simplisafe-python";
22 version = "2023.05.0";
23 format = "pyproject";
24
25 disabled = pythonOlder "3.9";
26
27 src = fetchFromGitHub {
28 owner = "bachya";
29 repo = pname;
30 rev = "refs/tags/${version}";
31 hash = "sha256-dcWDB9tpKrFbnWf35HLDmgy2zNTzKNeJQrdtRXbSMvs=";
32 };
33
34 nativeBuildInputs = [
35 poetry-core
36 ];
37
38 propagatedBuildInputs = [
39 aiohttp
40 backoff
41 beautifulsoup4
42 docutils
43 pytz
44 voluptuous
45 websockets
46 ];
47
48 nativeCheckInputs = [
49 aresponses
50 pytest-aiohttp
51 pytest-asyncio
52 pytestCheckHook
53 types-pytz
54 ];
55
56 disabledTests = [
57 # simplipy/api.py:253: InvalidCredentialsError
58 "test_request_error_failed_retry"
59 "test_update_error"
60 # ClientConnectorError: Cannot connect to host auth.simplisafe.com:443 ssl:default [Temporary failure in name resolution]
61 "test_client_async_from_refresh_token_unknown_error"
62 ];
63
64 disabledTestPaths = [
65 # Ignore the examples as they are prefixed with test_
66 "examples/"
67 ];
68
69 pythonImportsCheck = [
70 "simplipy"
71 ];
72
73 __darwinAllowLocalNetworking = true;
74
75 meta = with lib; {
76 changelog = "https://github.com/bachya/simplisafe-python/releases/tag/${version}";
77 description = "Python library the SimpliSafe API";
78 homepage = "https://simplisafe-python.readthedocs.io/";
79 license = with licenses; [ mit ];
80 maintainers = with maintainers; [ fab ];
81 };
82}