1{ stdenv, lib, buildPythonPackage, fetchPypi, substituteAll, pythonOlder
2, blessed
3, docutils
4, libcxx
5, libcxxabi
6, llvm
7, openmp
8, pytest
9, typesentry
10}:
11
12buildPythonPackage rec {
13 pname = "datatable";
14 version = "0.9.0";
15 disabled = pythonOlder "3.5";
16
17 src = fetchPypi {
18 inherit pname version;
19 sha256 = "1shwjkm9nyaj6asn57vwdd74pn13pggh14r6dzv729lzxm7nm65f";
20 };
21
22 patches = lib.optionals stdenv.isDarwin [
23 # Replace the library auto-detection with hardcoded paths.
24 (substituteAll {
25 src = ./hardcode-library-paths.patch;
26
27 libomp_dylib = "${lib.getLib openmp}/lib/libomp.dylib";
28 libcxx_dylib = "${lib.getLib libcxx}/lib/libc++.1.dylib";
29 libcxxabi_dylib = "${lib.getLib libcxxabi}/lib/libc++abi.dylib";
30 })
31 ];
32
33 propagatedBuildInputs = [ typesentry blessed ];
34 buildInputs = [ llvm ] ++ lib.optionals stdenv.isDarwin [ openmp ];
35 checkInputs = [ docutils pytest ];
36
37 LLVM = llvm;
38
39 checkPhase = ''
40 mv datatable datatable.hidden
41 pytest
42 '';
43
44 meta = with lib; {
45 description = "data.table for Python";
46 homepage = "https://github.com/h2oai/datatable";
47 license = licenses.mpl20;
48 maintainers = with maintainers; [ abbradar ];
49 };
50}