Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at gcc-offload 82 lines 1.7 kB view raw
1{ 2 lib, 3 fetchFromGitHub, 4 buildPythonPackage, 5 unittestCheckHook, 6 flit-core, 7 numpy, 8 scipy, 9 10 # optional dependencies 11 clarabel, 12 cvxopt, 13 daqp, 14 ecos, 15 gurobipy, 16 osqp, 17 quadprog, 18 scs, 19 highspy, 20 piqp, 21}: 22buildPythonPackage rec { 23 pname = "qpsolvers"; 24 version = "4.4.0"; 25 pyproject = true; 26 27 src = fetchFromGitHub { 28 owner = "qpsolvers"; 29 repo = "qpsolvers"; 30 rev = "refs/tags/v${version}"; 31 hash = "sha256-/yIFLxy2gjEFg/J9A5pcbrVmq4A3Tz2efEAntH0Twk8="; 32 }; 33 34 nativeBuildInputs = [ flit-core ]; 35 36 pythonImportsCheck = [ "qpsolvers" ]; 37 38 propagatedBuildInputs = [ 39 numpy 40 scipy 41 ]; 42 43 optional-dependencies = { 44 # FIXME commented out solvers have not been packaged yet 45 clarabel = [ clarabel ]; 46 cvxopt = [ cvxopt ]; 47 daqp = [ daqp ]; 48 ecos = [ ecos ]; 49 gurobi = [ gurobipy ]; 50 highs = [ highspy ]; 51 # mosek = [ cvxopt mosek ]; 52 osqp = [ osqp ]; 53 piqp = [ piqp ]; 54 # proxqp = [ proxsuite ]; 55 # qpalm = [ qpalm ]; 56 quadprog = [ quadprog ]; 57 scs = [ scs ]; 58 open_source_solvers = 59 with optional-dependencies; 60 lib.flatten [ 61 clarabel 62 cvxopt 63 daqp 64 ecos 65 highs 66 osqp 67 piqp # proxqp qpalm 68 quadprog 69 scs 70 ]; 71 }; 72 73 nativeCheckInputs = [ unittestCheckHook ] ++ optional-dependencies.open_source_solvers; 74 75 meta = with lib; { 76 changelog = "https://github.com/qpsolvers/qpsolvers/blob/${src.rev}/CHANGELOG.md"; 77 description = "Quadratic programming solvers in Python with a unified API"; 78 homepage = "https://github.com/qpsolvers/qpsolvers"; 79 license = licenses.lgpl3Plus; 80 maintainers = with maintainers; [ renesat ]; 81 }; 82}