about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/python-modules/certomancer/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/certomancer/default.nix')
-rw-r--r--nixpkgs/pkgs/development/python-modules/certomancer/default.nix75
1 files changed, 50 insertions, 25 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/certomancer/default.nix b/nixpkgs/pkgs/development/python-modules/certomancer/default.nix
index 324bb21f4d51..641941e7f38d 100644
--- a/nixpkgs/pkgs/development/python-modules/certomancer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/certomancer/default.nix
@@ -1,69 +1,94 @@
 { lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
 , asn1crypto
+, buildPythonPackage
 , click
-, oscrypto
-, pyyaml
-, python-dateutil
-, tzlocal
-, pytest-aiohttp
-, pytz
+, cryptography
+, fetchFromGitHub
 , freezegun
 , jinja2
+, oscrypto
 , pyhanko-certvalidator
+, pytest-aiohttp
+, pytestCheckHook
+, python-dateutil
+, python-pkcs11
+, pythonOlder
+, pytz
+, pyyaml
 , requests
 , requests-mock
+, setuptools
+, tzlocal
 , werkzeug
-, pytestCheckHook
+, wheel
 }:
 
 buildPythonPackage rec {
   pname = "certomancer";
-  version = "0.9.1";
-  format = "setuptools";
+  version = "0.11.0";
+  format = "pyproject";
+
   disabled = pythonOlder "3.7";
 
-  # Tests are only available on GitHub
   src = fetchFromGitHub {
     owner = "MatthiasValvekens";
     repo = "certomancer";
-    rev = version;
-    sha256 = "4v2e46ZrzhKXpMULj0vmDRoLOypi030eaADAYjLMg5M=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-UQV0Tk4C5b5iBZ34Je59gK2dLTaJusnpxdyNicIh2Q8=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace ' "pytest-runner",' "" \
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ];
+
   propagatedBuildInputs = [
     asn1crypto
     click
     oscrypto
-    pyyaml
     python-dateutil
+    pyyaml
     tzlocal
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py --replace ", 'pytest-runner'" ""
-  '';
+  passthru.optional-dependencies = {
+    requests-mocker = [
+      requests-mock
+    ];
+    web-api = [
+      jinja2
+      werkzeug
+    ];
+    pkcs12 = [
+      cryptography
+    ];
+    pkcs11 = [
+      python-pkcs11
+    ];
+  };
 
   nativeCheckInputs = [
     freezegun
-    jinja2
     pyhanko-certvalidator
     pytest-aiohttp
+    pytestCheckHook
     pytz
     requests
-    requests-mock
-    werkzeug
-    pytestCheckHook
-  ];
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
   disabledTests = [
     # pyhanko_certvalidator.errors.DisallowedAlgorithmError
     "test_validate"
   ];
 
-  pythonImportsCheck = [ "certomancer" ];
+  pythonImportsCheck = [
+    "certomancer"
+  ];
 
   meta = with lib; {
     description = "Quickly construct, mock & deploy PKI test configurations using simple declarative configuration";