Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
2.4 kB · 118 lines
Nix
at llvm-cleanup
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119{ lib, config, stdenv, buildPythonPackage, fetchPypi,
# build-system cmake, ninja, pathspec, pyproject-metadata, scikit-build-core,
# dependencies llvmPackages, numpy, scipy, pythonOlder,
# optionals cffi, dask, pandas, pyarrow, scikit-learn,
# optionals: gpu boost, ocl-icd, opencl-headers, gpuSupport ? stdenv.isLinux && !cudaSupport, cudaSupport ? config.cudaSupport, cudaPackages,}:
assert gpuSupport -> cudaSupport != true;assert cudaSupport -> gpuSupport != true;
buildPythonPackage rec { pname = "lightgbm"; version = "4.3.0"; pyproject = true;
disabled = pythonOlder "3.7";
src = fetchPypi { inherit pname version; hash = "sha256-AG9XhKm87kPlp+lD3E8C3hui7np68e5fGQ04Pztsnr4="; };
nativeBuildInputs = [ cmake ninja pathspec pyproject-metadata scikit-build-core ] ++ lib.optionals cudaSupport [ cudaPackages.cuda_nvcc ];
dontUseCmakeConfigure = true;
buildInputs = (lib.optionals stdenv.cc.isClang [ llvmPackages.openmp ]) ++ (lib.optionals gpuSupport [ boost ocl-icd opencl-headers ]) ++ lib.optionals cudaSupport [ cudaPackages.cuda_nvcc cudaPackages.cuda_cudart ];
propagatedBuildInputs = [ numpy scipy ];
pypaBuildFlags = lib.optionals gpuSupport [ "--config-setting=cmake.define.USE_GPU=ON" ] ++ lib.optionals cudaSupport [ "--config-setting=cmake.define.USE_CUDA=ON" ];
postConfigure = '' export HOME=$(mktemp -d) '';
passthru.optional-dependencies = { arrow = [ cffi pyarrow ]; dask = [ dask pandas ] ++ dask.optional-dependencies.array ++ dask.optional-dependencies.dataframe ++ dask.optional-dependencies.distributed; pandas = [ pandas ]; scikit-learn = [ scikit-learn ]; };
# 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;
pythonImportsCheck = [ "lightgbm" ];
meta = { description = "A fast, distributed, high performance gradient boosting (GBDT, GBRT, GBM or MART) framework"; homepage = "https://github.com/Microsoft/LightGBM"; changelog = "https://github.com/microsoft/LightGBM/releases/tag/v${version}"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ teh ]; };}