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}