1{
2 lib,
3 buildPythonPackage,
4 certifi,
5 cryptography,
6 docker,
7 fetchFromGitHub,
8 flit-core,
9 podman,
10 pycryptodome,
11 pytestCheckHook,
12 python-dateutil,
13 typing-extensions,
14 urllib3,
15}:
16
17buildPythonPackage rec {
18 pname = "nethsm";
19 version = "1.4.1";
20 pyproject = true;
21
22 src = fetchFromGitHub {
23 owner = "Nitrokey";
24 repo = "nethsm-sdk-py";
25 tag = "v${version}";
26 hash = "sha256-guW3KKIrRKSw8TsvPMTPJUyzISBNUoBqsGBWuv7Nf7M=";
27 };
28
29 pythonRelaxDeps = true;
30
31 build-system = [ flit-core ];
32
33 dependencies = [
34 certifi
35 cryptography
36 python-dateutil
37 typing-extensions
38 urllib3
39 ];
40
41 nativeCheckInputs = [
42 docker
43 podman
44 pycryptodome
45 pytestCheckHook
46 ];
47
48 pythonImportsCheck = [ "nethsm" ];
49
50 disabledTestPaths = [
51 # Tests require a running Docker instance
52 "tests/test_nethsm_config.py"
53 "tests/test_nethsm_keys.py"
54 "tests/test_nethsm_namespaces.py"
55 "tests/test_nethsm_other.py"
56 "tests/test_nethsm_system.py"
57 "tests/test_nethsm_users.py"
58 ];
59
60 meta = with lib; {
61 description = "Client-side Python SDK for NetHSM";
62 homepage = "https://github.com/Nitrokey/nethsm-sdk-py";
63 changelog = "https://github.com/Nitrokey/nethsm-sdk-py/releases/tag/${src.tag}";
64 license = licenses.asl20;
65 maintainers = with maintainers; [ frogamic ];
66 };
67}