1{ 2 lib, 3 buildPythonPackage, 4 pythonOlder, 5 fetchFromGitHub, 6 # build-system 7 setuptools, 8 wheel, 9 # dependencies 10 asn1crypto, 11 click, 12 cryptography, 13 python-dateutil, 14 pyyaml, 15 tzlocal, 16 # optional-dependencies 17 requests-mock, 18 jinja2, 19 werkzeug, 20 python-pkcs11, 21 # nativeCheckInputs 22 freezegun, 23 pyhanko-certvalidator, 24 pytest-aiohttp, 25 pytestCheckHook, 26 pytz, 27 requests, 28}: 29 30buildPythonPackage rec { 31 pname = "certomancer"; 32 version = "0.13.0"; 33 pyproject = true; 34 35 disabled = pythonOlder "3.7"; 36 37 src = fetchFromGitHub { 38 owner = "MatthiasValvekens"; 39 repo = "certomancer"; 40 tag = "v${version}"; 41 hash = "sha256-2/qTTN/UuSMHjkSsOs/KbfzKLBjJSLHY51XtgQ6x1Wo="; 42 }; 43 44 build-system = [ 45 setuptools 46 wheel 47 ]; 48 49 dependencies = [ 50 asn1crypto 51 click 52 cryptography 53 python-dateutil 54 pyyaml 55 tzlocal 56 ]; 57 58 optional-dependencies = { 59 requests-mocker = [ requests-mock ]; 60 web-api = [ 61 jinja2 62 werkzeug 63 ]; 64 pkcs11 = [ python-pkcs11 ]; 65 }; 66 67 nativeCheckInputs = [ 68 freezegun 69 pyhanko-certvalidator 70 pytest-aiohttp 71 pytestCheckHook 72 pytz 73 requests 74 ] 75 ++ lib.flatten (builtins.attrValues optional-dependencies); 76 77 pythonImportsCheck = [ "certomancer" ]; 78 79 meta = { 80 description = "Quickly construct, mock & deploy PKI test configurations using simple declarative configuration"; 81 mainProgram = "certomancer"; 82 homepage = "https://github.com/MatthiasValvekens/certomancer"; 83 license = lib.licenses.mit; 84 maintainers = [ ]; 85 }; 86}