nixpkgs/pkgs/development/python-modules/lightgbm/default.nix

63 lines
1.5 KiB
Nix
Raw Normal View History

{ stdenv
2019-07-11 19:47:40 +01:00
, buildPythonPackage
, fetchPypi
, cmake
, numpy
, scipy
, scikitlearn
, llvmPackages ? null
2019-07-11 19:47:40 +01:00
}:
buildPythonPackage rec {
pname = "lightgbm";
2019-10-24 07:47:37 +01:00
version = "2.3.0";
2019-07-11 19:47:40 +01:00
src = fetchPypi {
inherit pname version;
2019-10-24 07:47:37 +01:00
sha256 = "37225b9f816ea3365ff5988fc8a3717e46ac99a5f223986c86c86cec4f111b54";
2019-07-11 19:47:40 +01:00
};
nativeBuildInputs = [
cmake
];
2019-09-14 00:48:52 +01:00
dontUseCmakeConfigure = true;
# we never actually explicitly call the install command so this is the only way
# to inject these options to it - however, openmp-library doesn't appear to have
# any effect, so we have to inject it into NIX_LDFLAGS manually below
postPatch = stdenv.lib.optionalString stdenv.cc.isClang ''
cat >> setup.cfg <<EOF
[install]
openmp-include-dir=${llvmPackages.openmp}/include
openmp-library=${llvmPackages.openmp}/lib/libomp.dylib
EOF
'';
2019-07-11 19:47:40 +01:00
propagatedBuildInputs = [
numpy
scipy
scikitlearn
];
postConfigure = ''
export HOME=$(mktemp -d)
'' + stdenv.lib.optionalString stdenv.cc.isClang ''
export NIX_LDFLAGS="$NIX_LDFLAGS -L${llvmPackages.openmp}/lib -lomp"
2019-07-11 19:47:40 +01:00
'';
# The pypi package doesn't distribute the tests from the GitHub
# repository. It contains c++ tests which don't seem to wired up to
# `make check`.
doCheck = false;
meta = with stdenv.lib; {
2019-07-11 19:47:40 +01:00
description = "A fast, distributed, high performance gradient boosting (GBDT, GBRT, GBM or MART) framework";
homepage = https://github.com/Microsoft/LightGBM;
license = licenses.mit;
maintainers = with maintainers; [ teh costrouc ];
2019-07-11 19:47:40 +01:00
};
}