1{
2 lib,
3 fetchFromGitHub,
4 buildPythonPackage,
5 pythonOlder,
6 cryptography,
7 jinja2,
8 mako,
9 passlib,
10 pyyaml,
11 requests,
12 rtoml,
13 setuptools,
14 tomlkit,
15 librouteros,
16 pytestCheckHook,
17}:
18
19buildPythonPackage rec {
20 pname = "bundlewrap";
21 version = "4.22.0";
22 pyproject = true;
23
24 disabled = pythonOlder "3.8";
25
26 src = fetchFromGitHub {
27 owner = "bundlewrap";
28 repo = "bundlewrap";
29 tag = version;
30 hash = "sha256-F3Ipoep9ZmAqkh8mFLXpaEcYb4dpV9Dt/VgMa9X24Hw=";
31 };
32
33 build-system = [ setuptools ];
34 dependencies = [
35 setuptools
36 cryptography
37 jinja2
38 mako
39 passlib
40 pyyaml
41 requests
42 tomlkit
43 librouteros
44 ] ++ lib.optionals (pythonOlder "3.11") [ rtoml ];
45
46 pythonImportsCheck = [ "bundlewrap" ];
47
48 nativeCheckInputs = [ pytestCheckHook ];
49
50 pytestFlagsArray = [
51 # only unit tests as integration tests need a OpenSSH client/server setup
52 "tests/unit"
53 ];
54
55 meta = with lib; {
56 homepage = "https://bundlewrap.org/";
57 description = "Easy, Concise and Decentralized Config management with Python";
58 mainProgram = "bw";
59 license = [ licenses.gpl3 ];
60 maintainers = with maintainers; [ wamserma ];
61 };
62}