1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, blas
5, lapack
6, numpy
7, scipy
8 # check inputs
9, pytestCheckHook
10}:
11
12buildPythonPackage rec {
13 pname = "scs";
14 version = "3.0.0";
15
16 src = fetchFromGitHub {
17 owner = "bodono";
18 repo = "scs-python";
19 rev = version;
20 sha256 = "sha256-7OgqCo21S0FDev8xv6/8iGFXg8naVi93zd8v1f9iaWw=";
21 fetchSubmodules = true;
22 };
23
24 buildInputs = [
25 lapack
26 blas
27 ];
28
29 propagatedBuildInputs = [
30 numpy
31 scipy
32 ];
33
34 checkInputs = [ pytestCheckHook ];
35 pythonImportsCheck = [ "scs" ];
36
37 meta = with lib; {
38 description = "Python interface for SCS: Splitting Conic Solver";
39 longDescription = ''
40 Solves convex cone programs via operator splitting.
41 Can solve: linear programs (LPs), second-order cone programs (SOCPs), semidefinite programs (SDPs),
42 exponential cone programs (ECPs), and power cone programs (PCPs), or problems with any combination of those cones.
43 '';
44 homepage = "https://github.com/cvxgrp/scs"; # upstream C package
45 downloadPage = "https://github.com/bodono/scs-python";
46 license = licenses.mit;
47 maintainers = with maintainers; [ drewrisinger ];
48 };
49}