1{
2 lib,
3 buildPythonPackage,
4 pythonOlder,
5 fetchPypi,
6 dataclasses-json,
7 pycryptodome,
8 setuptools-scm,
9 pytest-asyncio,
10 pytest-cases,
11 pytest7CheckHook,
12 pytz,
13}:
14
15buildPythonPackage rec {
16 pname = "pysiaalarm";
17 version = "3.1.1";
18 format = "setuptools";
19
20 disabled = pythonOlder "3.8";
21
22 src = fetchPypi {
23 inherit pname version;
24 hash = "sha256-q42bsBeAwU9lt7wtYGFJv23UBND+aMXZJlSWyTfZDQE=";
25 };
26
27 postPatch = ''
28 substituteInPlace setup.cfg \
29 --replace "==" ">="
30 substituteInPlace pytest.ini \
31 --replace "--cov pysiaalarm --cov-report term-missing" ""
32 '';
33
34 nativeBuildInputs = [ setuptools-scm ];
35
36 propagatedBuildInputs = [
37 dataclasses-json
38 pycryptodome
39 pytz
40 ];
41
42 nativeCheckInputs = [
43 pytest-asyncio
44 pytest-cases
45 pytest7CheckHook
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}