1{ lib
2, aiohttp
3, aresponses
4, asynctest
5, backoff
6, beautifulsoup4
7, buildPythonPackage
8, docutils
9, fetchFromGitHub
10, poetry-core
11, pytest-aiohttp
12, pytest-asyncio
13, pytestCheckHook
14, pythonOlder
15, pytz
16, types-pytz
17, voluptuous
18, websockets
19}:
20
21buildPythonPackage rec {
22 pname = "simplisafe-python";
23 version = "2022.11.0";
24 format = "pyproject";
25
26 disabled = pythonOlder "3.8";
27
28 src = fetchFromGitHub {
29 owner = "bachya";
30 repo = pname;
31 rev = "refs/tags/${version}";
32 sha256 = "sha256-I4ZEKJFfCrpwPXl2f+2XJdFD2VkCghiKdgLjRKdZC+0=";
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 checkInputs = [
50 aresponses
51 asynctest
52 pytest-aiohttp
53 pytest-asyncio
54 pytestCheckHook
55 types-pytz
56 ];
57
58 postPatch = ''
59 substituteInPlace pyproject.toml \
60 --replace 'docutils = "<0.18"' 'docutils = "*"'
61 '';
62
63 disabledTests = [
64 # simplipy/api.py:253: InvalidCredentialsError
65 "test_request_error_failed_retry"
66 "test_update_error"
67 # ClientConnectorError: Cannot connect to host auth.simplisafe.com:443 ssl:default [Temporary failure in name resolution]
68 "test_client_async_from_refresh_token_unknown_error"
69 ];
70
71 disabledTestPaths = [
72 # Ignore the examples as they are prefixed with test_
73 "examples/"
74 ];
75
76 pythonImportsCheck = [
77 "simplipy"
78 ];
79
80 __darwinAllowLocalNetworking = true;
81
82 meta = with lib; {
83 description = "Python library the SimpliSafe API";
84 homepage = "https://simplisafe-python.readthedocs.io/";
85 license = with licenses; [ mit ];
86 maintainers = with maintainers; [ fab ];
87 };
88}