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