5e7c2d6cef
GitOrigin-RevId: f99e5f03cc0aa231ab5950a15ed02afec45ed51a
46 lines
1 KiB
Nix
46 lines
1 KiB
Nix
{ lib
|
|
, buildPythonPackage
|
|
, pythonOlder
|
|
, cmake
|
|
, numpy
|
|
, scipy
|
|
, hatchling
|
|
, stdenv
|
|
, xgboost
|
|
}:
|
|
|
|
buildPythonPackage {
|
|
pname = "xgboost";
|
|
format = "pyproject";
|
|
inherit (xgboost) version src meta;
|
|
|
|
disabled = pythonOlder "3.8";
|
|
|
|
nativeBuildInputs = [ cmake hatchling ];
|
|
buildInputs = [ xgboost ];
|
|
propagatedBuildInputs = [ numpy scipy ];
|
|
|
|
# Override existing logic for locating libxgboost.so which is not appropriate for Nix
|
|
prePatch = let
|
|
libPath = "${xgboost}/lib/libxgboost${stdenv.hostPlatform.extensions.sharedLibrary}";
|
|
in ''
|
|
echo 'find_lib_path = lambda: ["${libPath}"]' > python-package/xgboost/libpath.py
|
|
'';
|
|
|
|
dontUseCmakeConfigure = true;
|
|
|
|
postPatch = ''
|
|
cd python-package
|
|
'';
|
|
|
|
# test setup tries to download test data with no option to disable
|
|
# (removing sklearn from nativeCheckInputs causes all previously enabled tests to be skipped)
|
|
# and are extremely cpu intensive anyway
|
|
doCheck = false;
|
|
|
|
pythonImportsCheck = [
|
|
"xgboost"
|
|
];
|
|
|
|
__darwinAllowLocalNetworking = true;
|
|
}
|