1{
2 lib,
3 buildPythonPackage,
4 click,
5 defusedxml,
6 dicttoxml,
7 fetchFromGitHub,
8 httpx,
9 pycryptodome,
10 pytest-asyncio,
11 pytest-raises,
12 pytestCheckHook,
13 pythonOlder,
14 respx,
15 typing-extensions,
16}:
17
18buildPythonPackage rec {
19 pname = "ismartgate";
20 version = "5.0.2";
21 format = "setuptools";
22
23 disabled = pythonOlder "3.8";
24
25 src = fetchFromGitHub {
26 owner = "bdraco";
27 repo = "ismartgate";
28 tag = "v${version}";
29 hash = "sha256-8c05zzDav87gTL2CI7Aoi6ALwLw76H9xj+90xH31hdE=";
30 };
31
32 postPatch = ''
33 substituteInPlace setup.py \
34 --replace '"pytest-runner>=5.2",' ""
35 '';
36
37 propagatedBuildInputs = [
38 click
39 defusedxml
40 dicttoxml
41 httpx
42 pycryptodome
43 typing-extensions
44 ];
45
46 nativeCheckInputs = [
47 pytest-asyncio
48 pytest-raises
49 pytestCheckHook
50 respx
51 ];
52
53 pythonImportsCheck = [ "ismartgate" ];
54
55 meta = with lib; {
56 description = "Python module to work with the ismartgate and gogogate2 API";
57 homepage = "https://github.com/bdraco/ismartgate";
58 changelog = "https://github.com/bdraco/ismartgate/releases/tag/v${version}";
59 license = with licenses; [ mit ];
60 maintainers = with maintainers; [ fab ];
61 };
62}