1{
2 lib,
3 buildPythonPackage,
4 pythonOlder,
5 fetchFromGitHub,
6
7 # build-system
8 setuptools,
9 versioneer,
10
11 # dependencies
12 dask,
13 pandas,
14 pyarrow,
15
16 # checks
17 distributed,
18 pytestCheckHook,
19 xarray
20}:
21
22buildPythonPackage rec {
23 pname = "dask-expr";
24 version = "1.1.9";
25 pyproject = true;
26
27 disabled = pythonOlder "3.9";
28
29 src = fetchFromGitHub {
30 owner = "dask";
31 repo = "dask-expr";
32 rev = "refs/tags/v${version}";
33 hash = "sha256-DfXGQ5/aOIWcM9qcALMr3T6qi/l9gMF9HLaQwbzPdE4=";
34 };
35
36 postPatch = ''
37 substituteInPlace pyproject.toml \
38 --replace-fail "versioneer[toml]==0.28" "versioneer[toml]"
39 '';
40
41 build-system = [
42 setuptools
43 versioneer
44 ];
45
46 dependencies = [
47 dask
48 pandas
49 pyarrow
50 ];
51
52 pythonImportsCheck = [ "dask_expr" ];
53
54 nativeCheckInputs = [
55 distributed
56 pytestCheckHook
57 xarray
58 ];
59
60 __darwinAllowLocalNetworking = true;
61
62 meta = {
63 description = "Rewrite of Dask DataFrame that includes query optimization and generally improved organization";
64 homepage = "https://github.com/dask/dask-expr";
65 license = lib.licenses.bsd3;
66 maintainers = with lib.maintainers; [ GaetanLepage ];
67 };
68}