Change:
Would be a very useful package to have for ML Enthusiasts Project description Machine Learning Catboost Library Metadata CatBoost is a high-performance open source library for gradient boosting on decision trees homepage URL: source URL: license: Apache License 2.0 platforms: Linux installation instructions: Please let me know if I should stop tagging you in random issues and it bothers you (sorry, i'll stop), but I thought this might be of interest to you since you are very involved in tensorflow.
taggining maintainers of xgboost and lightgbm. Wondering if you could look into compiling catboost too?
I use tensorflow at work, which is why I care :). But I'm not a data-scientist
understood, thank you. GPU support for catboost would also be very welcome.
Looks like they have a non standard install script. But definitely doable. Sadly I don't think I have time in the near future but would be happy to point you in the right direction to get stared with a PR
both eyes wide open - i'll try to start this w/e, any pointers very welcome, thank you.
Currently failing to build on nix, although the file clearly exists.
- maybe it's easier if you create a work-in-progress pull request so other people can check? Two things that stand out are: looks like something is being downloaded during the build process. This won't work with sandboxing because there won't be a working network. builds should be isolated, i.e. access to should be rewritten to the local build directory, not (probably hardcoded somewhere in the build scripts). Packaging for nix can be quite fiddly - I think might be a good example for fetching complex dependencies + build script patches.
Thank you for your contributions. This has been automatically marked as stale because it has had no activity for 180 days. If this is still important to you, we ask that you leave a comment below. Your comment can be as simple as "still important to me". This lets people see that at least one person still cares about this. Someone will have to do this at most twice a year if there is no other activity. Here are suggestions that might help resolve this more quickly: for maintainers and people that previously touched the related code and @ mention them in a comment. on the . 3. Ask on the on .

Discussion:
githubId = 13000278; name = "Maksim Bronsky"; }; <ins> PlushBeaver = { name = "Dmitry Kozlyuk"; email = "dmitry.kozliuk+nixpkgs@gmail.com"; github = "PlushBeaver"; githubId = 8988269; }; </ins> pmahoney = { email = "pat@polycrystal.org"; github = "pmahoney";

<ins> { buildPythonPackage, fetchFromGitHub, fetchpatch, lib, pythonOlder , clang_7, python2 , graphviz, matplotlib, numpy, pandas, plotly, scipy, six , withCuda ? false, cudatoolkit }: buildPythonPackage rec { pname = "catboost"; version = "0.24.4"; disabled = pythonOlder "3.4"; src = fetchFromGitHub { owner = "catboost"; repo = "catboost"; rev = "v${version}"; sha256 = "sha256-pzmwEiKziB4ldnKgeCsP2HdnisX8sOkLssAzNfcSEx8="; }; nativeBuildInputs = [ clang_7 python2 ]; propagatedBuildInputs = [ graphviz matplotlib numpy pandas scipy plotly six ] ++ lib.optional withCuda [ cudatoolkit ]; patches = [ ./nix-support.patch (fetchpatch { name = "format.patch"; url = "https://github.com/catboost/catboost/pull/1528/commits/a692ba42e5c0f62e5da82b2f6fccfa77deb3419c.patch"; sha256 = "sha256-fNGucHxsSDFRLk3hFH7rm+zzTdDpY9/QjRs8K+AzVvo="; }) ]; preBuild = '' cd catboost/python-package ''; setupPyBuildFlags = [ "--with-ymake=no" ]; CUDA_ROOT = lib.optional withCuda cudatoolkit; enableParallelBuilding = true; # Tests use custom "ya" tool, not yet supported. dontUseSetuptoolsCheck = true; pythonImportsCheck = [ "catboost" ]; meta = with lib; { description = "High-performance library for gradient boosting on decision trees."; longDescription = '' A fast, scalable, high performance Gradient Boosting on Decision Trees library, used for ranking, classification, regression and other machine learning tasks for Python, R, Java, C++. Supports computation on CPU and GPU. ''; license = licenses.asl20; platforms = [ "x86_64-linux" ]; homepage = "https://catboost.ai"; maintainers = with maintainers; [ PlushBeaver ]; }; } </ins>

<ins> diff --git a/catboost/python-package/setup.py b/catboost/python-package/setup.py index 17f1d8ff14..07da618cd1 100644 --- a/catboost/python-package/setup.py +++ b/catboost/python-package/setup.py @@ -80,7 +80,7 @@ class Helper(object): self.with_cuda = os.environ.get('CUDA_PATH') or os.environ.get('CUDA_ROOT') or None self.os_sdk = 'local' self.with_ymake = True -        self.parallel = None +        self.parallel = os.environ.get('NIX_BUILD_CORES') or None def finalize_options(self): if os.path.exists(str(self.with_cuda)): @@ -222,11 +222,12 @@ class build_ext(_build_ext): def build_with_make(self, topsrc_dir, build_dir, catboost_ext, put_dir, verbose, dry_run): logging.info('Buildling {} with gnu make'.format(catboost_ext)) -        makefile = 'python{}.{}CLANG50-LINUX-X86_64.makefile'.format(python_version()[0], 'CUDA.' if self.with_cuda else '') +        makefile = 'python{}.{}CLANG7-LINUX-X86_64.makefile'.format(python_version()[0], 'CUDA.' if self.with_cuda else '') make_cmd = [ 'make', '-f', '../../make/' + makefile, -            'CC=clang-5.0', -            'CXX=clang++-5.0', +            'CC=clang', +            'CXX=clang++', +            'PYTHON=python2', 'BUILD_ROOT=' + build_dir, 'SOURCE_ROOT=' + topsrc_dir, ] diff --git a/make/python2.CLANG7-LINUX-X86_64.makefile b/make/python2.CLANG7-LINUX-X86_64.makefile index e54b7078e8..fb7b208af9 100644 --- a/make/python2.CLANG7-LINUX-X86_64.makefile +++ b/make/python2.CLANG7-LINUX-X86_64.makefile @@ -4,33 +4,6 @@ BUILD_ROOT = $(shell pwd) SOURCE_ROOT = $(shell pwd) PYTHON = $(shell which python) -ifneq ($(MAKECMDGOALS),help) -define _CC_TEST -__clang_major__ __clang_minor__ -endef - -_CC_VERSION = $(shell echo '$(_CC_TEST)' | $(CC) -E -P -) -$(info _CC_VERSION = '$(_CC_VERSION)') - -ifneq '$(_CC_VERSION)' '7 0' -    $(error clang 7.0 is required) -endif -endif - -ifneq ($(MAKECMDGOALS),help) -define _CXX_TEST -__clang_major__ __clang_minor__ -endef - -_CXX_VERSION = $(shell echo '$(_CXX_TEST)' | $(CXX) -E -P -) -$(info _CXX_VERSION = '$(_CXX_VERSION)') - -ifneq '$(_CXX_VERSION)' '7 0' -    $(error clang 7.0 is required) -endif -endif - - all :: $(BUILD_ROOT)/catboost/python-package/catboost/_catboost.so diff --git a/make/python2.CUDA.CLANG7-LINUX-X86_64.makefile b/make/python2.CUDA.CLANG7-LINUX-X86_64.makefile index 2a22a79b25..522fb54a7c 100644 --- a/make/python2.CUDA.CLANG7-LINUX-X86_64.makefile +++ b/make/python2.CUDA.CLANG7-LINUX-X86_64.makefile @@ -4,33 +4,6 @@ BUILD_ROOT = $(shell pwd) SOURCE_ROOT = $(shell pwd) PYTHON = $(shell which python) -ifneq ($(MAKECMDGOALS),help) -define _CC_TEST -__clang_major__ __clang_minor__ -endef - -_CC_VERSION = $(shell echo '$(_CC_TEST)' | $(CC) -E -P -) -$(info _CC_VERSION = '$(_CC_VERSION)') - -ifneq '$(_CC_VERSION)' '7 0' -    $(error clang 7.0 is required) -endif -endif - -ifneq ($(MAKECMDGOALS),help) -define _CXX_TEST -__clang_major__ __clang_minor__ -endef - -_CXX_VERSION = $(shell echo '$(_CXX_TEST)' | $(CXX) -E -P -) -$(info _CXX_VERSION = '$(_CXX_VERSION)') - -ifneq '$(_CXX_VERSION)' '7 0' -    $(error clang 7.0 is required) -endif -endif - - all :: $(BUILD_ROOT)/catboost/python-package/catboost/_catboost.so diff --git a/make/python3.CLANG7-LINUX-X86_64.makefile b/make/python3.CLANG7-LINUX-X86_64.makefile index fee6750bcb..dc55908371 100644 --- a/make/python3.CLANG7-LINUX-X86_64.makefile +++ b/make/python3.CLANG7-LINUX-X86_64.makefile @@ -4,33 +4,6 @@ BUILD_ROOT = $(shell pwd) SOURCE_ROOT = $(shell pwd) PYTHON = $(shell which python) -ifneq ($(MAKECMDGOALS),help) -define _CC_TEST -__clang_major__ __clang_minor__ -endef - -_CC_VERSION = $(shell echo '$(_CC_TEST)' | $(CC) -E -P -) -$(info _CC_VERSION = '$(_CC_VERSION)') - -ifneq '$(_CC_VERSION)' '7 0' -    $(error clang 7.0 is required) -endif -endif - -ifneq ($(MAKECMDGOALS),help) -define _CXX_TEST -__clang_major__ __clang_minor__ -endef - -_CXX_VERSION = $(shell echo '$(_CXX_TEST)' | $(CXX) -E -P -) -$(info _CXX_VERSION = '$(_CXX_VERSION)') - -ifneq '$(_CXX_VERSION)' '7 0' -    $(error clang 7.0 is required) -endif -endif - - all :: $(BUILD_ROOT)/catboost/python-package/catboost/_catboost.so diff --git a/make/python3.CUDA.CLANG7-LINUX-X86_64.makefile b/make/python3.CUDA.CLANG7-LINUX-X86_64.makefile index 5146830476..ff8535b03e 100644 --- a/make/python3.CUDA.CLANG7-LINUX-X86_64.makefile +++ b/make/python3.CUDA.CLANG7-LINUX-X86_64.makefile @@ -4,33 +4,6 @@ BUILD_ROOT = $(shell pwd) SOURCE_ROOT = $(shell pwd) PYTHON = $(shell which python) -ifneq ($(MAKECMDGOALS),help) -define _CC_TEST -__clang_major__ __clang_minor__ -endef - -_CC_VERSION = $(shell echo '$(_CC_TEST)' | $(CC) -E -P -) -$(info _CC_VERSION = '$(_CC_VERSION)') - -ifneq '$(_CC_VERSION)' '7 0' -    $(error clang 7.0 is required) -endif -endif - -ifneq ($(MAKECMDGOALS),help) -define _CXX_TEST -__clang_major__ __clang_minor__ -endef - -_CXX_VERSION = $(shell echo '$(_CXX_TEST)' | $(CXX) -E -P -) -$(info _CXX_VERSION = '$(_CXX_VERSION)') - -ifneq '$(_CXX_VERSION)' '7 0' -    $(error clang 7.0 is required) -endif -endif - - all :: $(BUILD_ROOT)/catboost/python-package/catboost/_catboost.so </ins>

catalogue = callPackage ../development/python-modules/catalogue { }; <ins> catboost = callPackage ../development/python-modules/catboost { }; </ins> cbeams = callPackage ../misc/cbeams { }; cbor2 = callPackage ../development/python-modules/cbor2 { };