about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/python-modules/qpsolvers/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/qpsolvers/default.nix')
-rw-r--r--nixpkgs/pkgs/development/python-modules/qpsolvers/default.nix50
1 files changed, 37 insertions, 13 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/qpsolvers/default.nix b/nixpkgs/pkgs/development/python-modules/qpsolvers/default.nix
index 9f0538136afc..7a1844616a36 100644
--- a/nixpkgs/pkgs/development/python-modules/qpsolvers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qpsolvers/default.nix
@@ -4,44 +4,68 @@
 , buildPythonPackage
 , unittestCheckHook
 , flit-core
+, numpy
+, scipy
+
+# optional dependencies
+, clarabel
+, cvxopt
 , daqp
 , ecos
-, numpy
+, gurobipy
 , osqp
-, scipy
-, scs
 , quadprog
+, scs
 }:
 buildPythonPackage rec {
   pname = "qpsolvers";
-  version = "4.2.0";
-  format = "pyproject";
+  version = "4.3.1";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "qpsolvers";
     repo = "qpsolvers";
     rev = "refs/tags/v${version}";
-    hash = "sha256-brniRAGwN/areB7MnaGeF7CdNku7DG/Q+8TmCXY99iU=";
+    hash = "sha256-/HLc9dFf9F/6W7ux2Fj2yJuV/xCVeGyO6MblddwIGdM=";
   };
 
+  nativeBuildInputs = [
+    flit-core
+  ];
+
   pythonImportsCheck = [ "qpsolvers" ];
 
   propagatedBuildInputs = [
-    daqp
-    ecos
     numpy
-    osqp
     scipy
-    scs
   ];
 
+  passthru.optional-dependencies = {
+    # FIXME commented out solvers have not been packaged yet
+    clarabel = [ clarabel ];
+    cvxopt = [ cvxopt ];
+    daqp = [ daqp ];
+    ecos = [ ecos ];
+    gurobi = [ gurobipy ];
+    # highs = [ highspy ];
+    # mosek = [ cvxopt mosek ];
+    osqp = [ osqp ];
+    # piqp = [ piqp ];
+    # proxqp = [ proxsuite ];
+    # qpalm = [ qpalm ];
+    quadprog = [ quadprog ];
+    scs = [ scs ];
+    open_source_solvers = with passthru.optional-dependencies; lib.flatten [
+      clarabel cvxopt daqp ecos /* highs */ osqp /* piqp proxqp qpalm */ quadprog scs
+    ];
+  };
+
   nativeCheckInputs = [
-    flit-core
-    quadprog
     unittestCheckHook
-  ];
+  ] ++ passthru.optional-dependencies.open_source_solvers;
 
   meta = with lib; {
+    changelog = "https://github.com/qpsolvers/qpsolvers/blob/${src.rev}/CHANGELOG.md";
     description = "Quadratic programming solvers in Python with a unified API";
     homepage = "https://github.com/qpsolvers/qpsolvers";
     license = licenses.lgpl3Plus;