1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 fetchpatch2,
6 pythonOlder,
7
8 # build-system
9 setuptools,
10
11 # dependencies
12 locket,
13 toolz,
14
15 # optional-dependencies
16 blosc2,
17 numpy,
18 pandas,
19 pyzmq,
20
21 # tests
22 pytestCheckHook,
23}:
24
25buildPythonPackage rec {
26 pname = "partd";
27 version = "1.4.1";
28 pyproject = true;
29
30 disabled = pythonOlder "3.7";
31
32 src = fetchFromGitHub {
33 owner = "dask";
34 repo = "partd";
35 tag = version;
36 hash = "sha256-EK+HNSPh2b7jwpc6jwH/n+6HDgHhRfBeaRuiDIWVG28=";
37 };
38
39 patches = [
40 (fetchpatch2 {
41 # python 3.12 support; https://github.com/dask/partd/pull/70
42 url = "https://github.com/dask/partd/pull/70/commits/c96a034367cb9fee0a0900f758b802aeef8a8a41.patch";
43 hash = "sha256-QlSIrFQQQo9We/gf7WSgmWrxdt3rxXQcyvJnFm8R5cM=";
44 })
45 ];
46
47 nativeBuildInputs = [ setuptools ];
48
49 propagatedBuildInputs = [
50 locket
51 toolz
52 ];
53
54 optional-dependencies = {
55 complete = [
56 blosc2
57 numpy
58 pandas
59 pyzmq
60 ];
61 };
62
63 nativeCheckInputs = [ pytestCheckHook ];
64
65 meta = {
66 description = "Appendable key-value storage";
67 license = with lib.licenses; [ bsd3 ];
68 homepage = "https://github.com/dask/partd/";
69 };
70}