anki-bin: 24.06.3 -> 24.11 (#360722)
[NixPkgs.git] / pkgs / development / python-modules / vowpalwabbit / default.nix
blob5dbf58739c7506a85b76479970e94eba53814b79
2   stdenv,
3   lib,
4   fetchPypi,
5   buildPythonPackage,
6   cmake,
7   python,
8   zlib,
9   ncurses,
10   docutils,
11   pygments,
12   numpy,
13   scipy,
14   scikit-learn,
15   spdlog,
16   fmt,
17   rapidjson,
20 buildPythonPackage rec {
21   pname = "vowpalwabbit";
22   version = "9.10.0";
23   format = "setuptools";
25   src = fetchPypi {
26     inherit pname version;
27     hash = "sha256-Yyqm3MlW6UL+bCufFfzWg9mBBQNhLxR+g++ZrQ6qM/E=";
28   };
30   nativeBuildInputs = [ cmake ];
32   buildInputs = [
33     docutils
34     ncurses
35     pygments
36     python.pkgs.boost
37     zlib.dev
38     spdlog
39     fmt
40     rapidjson
41   ];
43   # As we disable configure via cmake, pass explicit global options to enable
44   # spdlog and fmt packages
45   setupPyGlobalFlags = [ "--cmake-options=\"-DSPDLOG_SYS_DEP=ON;-DFMT_SYS_DEP=ON\"" ];
47   propagatedBuildInputs = [
48     numpy
49     scikit-learn
50     scipy
51   ];
53   # Python build script uses CMake, but we don't want CMake to do the
54   # configuration.
55   dontUseCmakeConfigure = true;
57   # Python ctypes.find_library uses DYLD_LIBRARY_PATH.
58   preConfigure = lib.optionalString stdenv.hostPlatform.isDarwin ''
59     export DYLD_LIBRARY_PATH="${python.pkgs.boost}/lib"
60   '';
62   checkPhase = ''
63     # check-manifest requires a git clone, not a tarball
64     # check-manifest --ignore "Makefile,PACKAGE.rst,*.cc,tox.ini,tests*,examples*,src*"
65     ${python.interpreter} setup.py check -ms
66   '';
68   meta = with lib; {
69     description = "Vowpal Wabbit is a fast machine learning library for online learning, and this is the python wrapper for the project";
70     homepage = "https://github.com/JohnLangford/vowpal_wabbit";
71     license = licenses.bsd3;
72     maintainers = with maintainers; [ teh ];
73     # Test again when new version is released
74     broken = stdenv.hostPlatform.isLinux;
75   };