about summary refs log tree commit diff
path: root/pkgs/development/python-modules/cvxopt
diff options
context:
space:
mode:
authorTimo Kaufmann <timokau@zoho.com>2018-04-11 18:19:52 +0200
committerTimo Kaufmann <timokau@zoho.com>2018-04-12 12:50:22 +0200
commit156e910b6d2dc09923187574e1a33b08c7a69940 (patch)
tree7d1b0cbf543383eff5c49961097c73fee5fca2fa /pkgs/development/python-modules/cvxopt
parent19a6f0e02bfc2f5c605d57e7487fa84dc74981bf (diff)
downloadnixlib-156e910b6d2dc09923187574e1a33b08c7a69940.tar
nixlib-156e910b6d2dc09923187574e1a33b08c7a69940.tar.gz
nixlib-156e910b6d2dc09923187574e1a33b08c7a69940.tar.bz2
nixlib-156e910b6d2dc09923187574e1a33b08c7a69940.tar.lz
nixlib-156e910b6d2dc09923187574e1a33b08c7a69940.tar.xz
nixlib-156e910b6d2dc09923187574e1a33b08c7a69940.tar.zst
nixlib-156e910b6d2dc09923187574e1a33b08c7a69940.zip
pythonPackages.cvxopt: 1.1.7 -> 1.1.9
Also adds support for the optional extensions glpk, gsl, fftw and
enables tests.
Diffstat (limited to 'pkgs/development/python-modules/cvxopt')
-rw-r--r--pkgs/development/python-modules/cvxopt/default.nix69
1 files changed, 69 insertions, 0 deletions
diff --git a/pkgs/development/python-modules/cvxopt/default.nix b/pkgs/development/python-modules/cvxopt/default.nix
new file mode 100644
index 000000000000..be6f688f5032
--- /dev/null
+++ b/pkgs/development/python-modules/cvxopt/default.nix
@@ -0,0 +1,69 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPyPy
+, python
+, openblasCompat # build segfaults with regular openblas
+, suitesparse
+, glpk ? null
+, gsl ? null
+, fftw ? null
+, withGlpk ? true
+, withGsl ? true
+, withFftw ? true
+}:
+
+buildPythonPackage rec {
+  pname = "cvxopt";
+  version = "1.1.9";
+
+  disabled = isPyPy; # hangs at [translation:info]
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0gcqq8ymjxv8qa5ss2pdhsj5bahvdxa6h2rlpp51520mjxrpw5cg";
+  };
+
+  # similar to Gsl, glpk, fftw there is also a dsdp interface
+  # but dsdp is not yet packaged in nixpkgs
+  preConfigure = ''
+    export CVXOPT_BLAS_LIB_DIR=${openblasCompat}/lib
+    export CVXOPT_BLAS_LIB=openblas
+    export CVXOPT_LAPACK_LIB=openblas
+    export CVXOPT_SUITESPARSE_LIB_DIR=${suitesparse}/lib
+    export CVXOPT_SUITESPARSE_INC_DIR=${suitesparse}/include
+  '' + lib.optionalString withGsl ''
+    export CVXOPT_BUILD_GSL=1
+    export CVXOPT_GSL_LIB_DIR=${gsl}/lib
+    export CVXOPT_GSL_INC_DIR=${gsl}/include
+  '' + lib.optionalString withGlpk ''
+    export CVXOPT_BUILD_GLPK=1
+    export CVXOPT_GLPK_LIB_DIR=${glpk}/lib
+    export CVXOPT_GLPK_INC_DIR=${glpk}/include
+  '' + lib.optionalString withFftw ''
+    export CVXOPT_BUILD_FFTW=1
+    export CVXOPT_FFTW_LIB_DIR=${fftw}/lib
+    export CVXOPT_FFTW_INC_DIR=${fftw.dev}/include
+  '';
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover -s tests
+  '';
+
+  meta = {
+    homepage = http://cvxopt.org/;
+    description = "Python Software for Convex Optimization";
+    longDescription = ''
+      CVXOPT is a free software package for convex optimization based on the
+      Python programming language. It can be used with the interactive
+      Python interpreter, on the command line by executing Python scripts,
+      or integrated in other software via Python extension modules. Its main
+      purpose is to make the development of software for convex optimization
+      applications straightforward by building on Python's extensive
+      standard library and on the strengths of Python as a high-level
+      programming language.
+    '';
+    maintainers = with lib.maintainers; [ edwtjo ];
+    license = lib.licenses.gpl3Plus;
+  };
+}