nixpkgs/pkgs/development/python-modules/osqp/default.nix

61 lines
1.4 KiB
Nix
Raw Normal View History

{ lib
, buildPythonPackage
, fetchPypi
, cmake
, future
, numpy
2021-01-12 00:35:36 +00:00
, qdldl
, scipy
# check inputs
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "osqp";
2021-01-12 00:35:36 +00:00
version = "0.6.2";
src = fetchPypi {
inherit pname version;
2021-01-12 00:35:36 +00:00
sha256 = "262162039f6ad6c9ffee658541b18cfae8240b65edbde71d9b9e3af42fbfe4b3";
};
nativeBuildInputs = [ cmake ];
dontUseCmakeConfigure = true;
propagatedBuildInputs = [
future
numpy
2021-01-12 00:35:36 +00:00
qdldl
scipy
];
pythonImportsCheck = [ "osqp" ];
checkInputs = [ pytestCheckHook ];
disabledTests = [
"mkl_"
2021-01-12 00:35:36 +00:00
];
pytestFlagsArray = [
# These cannot collect b/c of circular dependency on cvxpy: https://github.com/oxfordcontrol/osqp-python/issues/50
"--ignore=module/tests/basic_test.py"
"--ignore=module/tests/feasibility_test.py"
"--ignore=module/tests/polishing_test.py"
"--ignore=module/tests/unconstrained_test.py"
"--ignore=module/tests/update_matrices_test.py"
];
meta = with lib; {
description = "The Operator Splitting QP Solver";
longDescription = ''
Numerical optimization package for solving problems in the form
minimize 0.5 x' P x + q' x
subject to l <= A x <= u
where x in R^n is the optimization variable
'';
homepage = "https://osqp.org/";
downloadPage = "https://github.com/oxfordcontrol/osqp-python/releases";
license = licenses.asl20;
maintainers = with maintainers; [ drewrisinger ];
};
}