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