1{
2 lib,
3 buildPythonPackage,
4 pythonOlder,
5 fetchPypi,
6 dataclasses-json,
7 pycryptodome,
8 setuptools-scm,
9 pytest-asyncio_0,
10 pytest-cases,
11 pytest-cov-stub,
12 pytestCheckHook,
13 pytz,
14}:
15
16buildPythonPackage rec {
17 pname = "pysiaalarm";
18 version = "3.1.1";
19 pyproject = true;
20
21 disabled = pythonOlder "3.8";
22
23 src = fetchPypi {
24 inherit pname version;
25 hash = "sha256-q42bsBeAwU9lt7wtYGFJv23UBND+aMXZJlSWyTfZDQE=";
26 };
27
28 postPatch = ''
29 substituteInPlace setup.cfg \
30 --replace "==" ">="
31 '';
32
33 build-system = [ setuptools-scm ];
34
35 propagatedBuildInputs = [
36 dataclasses-json
37 pycryptodome
38 pytz
39 ];
40
41 nativeCheckInputs = [
42 pytest-asyncio_0
43 pytest-cases
44 pytest-cov-stub
45 pytestCheckHook
46 ];
47
48 pythonImportsCheck = [
49 "pysiaalarm"
50 "pysiaalarm.aio"
51 ];
52
53 meta = with lib; {
54 description = "Python package for creating a client that talks with SIA-based alarm systems";
55 homepage = "https://github.com/eavanvalkenburg/pysiaalarm";
56 changelog = "https://github.com/eavanvalkenburg/pysiaalarm/releases/tag/v${version}";
57 license = licenses.mit;
58 maintainers = with maintainers; [ dotlambda ];
59 };
60}