about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/python-modules/partd/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/partd/default.nix')
-rw-r--r--nixpkgs/pkgs/development/python-modules/partd/default.nix57
1 files changed, 43 insertions, 14 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/partd/default.nix b/nixpkgs/pkgs/development/python-modules/partd/default.nix
index 728ed09b735c..b5f8afce9d3b 100644
--- a/nixpkgs/pkgs/development/python-modules/partd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/partd/default.nix
@@ -1,14 +1,24 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, isPy27
+, fetchFromGitHub
+, fetchpatch2
+, pythonOlder
+
+# build-system
 , setuptools
-, pytest
+
+# dependencies
 , locket
+, toolz
+
+# optional-dependencies
+, blosc2
 , numpy
 , pandas
 , pyzmq
-, toolz
+
+# tests
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -16,25 +26,44 @@ buildPythonPackage rec {
   version = "1.4.1";
   pyproject = true;
 
-  disabled = isPy27;
+  disabled = pythonOlder "3.7";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-VsJd1J5v6lcn5zEgPEZsbgkvMI2PACThmdAvaqIWf2c=";
+  src = fetchFromGitHub {
+    owner = "dask";
+    repo = "partd";
+    rev = "refs/tags/${version}";
+    hash = "sha256-EK+HNSPh2b7jwpc6jwH/n+6HDgHhRfBeaRuiDIWVG28=";
   };
 
+  patches = [
+    (fetchpatch2 {
+      # python 3.12 support; https://github.com/dask/partd/pull/70
+      url = "https://github.com/dask/partd/pull/70/commits/c96a034367cb9fee0a0900f758b802aeef8a8a41.patch";
+      hash = "sha256-QlSIrFQQQo9We/gf7WSgmWrxdt3rxXQcyvJnFm8R5cM=";
+    })
+  ];
+
   nativeBuildInputs = [
     setuptools
   ];
 
-  nativeCheckInputs = [ pytest ];
+  propagatedBuildInputs = [
+    locket
+    toolz
+  ];
 
-  propagatedBuildInputs = [ locket numpy pandas pyzmq toolz ];
+  passthru.optional-dependencies = {
+    complete = [
+      blosc2
+      numpy
+      pandas
+      pyzmq
+    ];
+  };
 
-  checkPhase = ''
-    rm partd/tests/test_zmq.py # requires network & fails
-    py.test -k "not test_serialize"
-  '';
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
   meta = {
     description = "Appendable key-value storage";