1{ lib
2, buildPythonPackage
3, fetchPypi
4, cmake
5, future
6, numpy
7, qdldl
8, scipy
9# check inputs
10, pytestCheckHook
11, cvxopt
12}:
13
14buildPythonPackage rec {
15 pname = "osqp";
16 version = "0.6.2.post0";
17
18 src = fetchPypi {
19 inherit pname version;
20 sha256 = "5f0695f26a3bef0fae91254bc283fab790dcca0064bfe0f425167f9c9e8b4cbc";
21 };
22
23 nativeBuildInputs = [ cmake ];
24 dontUseCmakeConfigure = true;
25
26 propagatedBuildInputs = [
27 future
28 numpy
29 qdldl
30 scipy
31 ];
32
33 pythonImportsCheck = [ "osqp" ];
34 checkInputs = [ pytestCheckHook cvxopt ];
35 disabledTests = [
36 "mkl_"
37 ];
38
39 meta = with lib; {
40 description = "The Operator Splitting QP Solver";
41 longDescription = ''
42 Numerical optimization package for solving problems in the form
43 minimize 0.5 x' P x + q' x
44 subject to l <= A x <= u
45
46 where x in R^n is the optimization variable
47 '';
48 homepage = "https://osqp.org/";
49 downloadPage = "https://github.com/oxfordcontrol/osqp-python/releases";
50 license = licenses.asl20;
51 maintainers = with maintainers; [ drewrisinger ];
52 };
53}