python312Packages.fnllm: 0.0.11 -> 0.0.12 (#364582)
[NixPkgs.git] / pkgs / development / python-modules / scs / default.nix
blobe311b2f2f25f858871589bed4d9eb1bfb5a14cb0
2   lib,
3   stdenv,
4   buildPythonPackage,
5   fetchFromGitHub,
7   # build-system
8   meson-python,
9   numpy,
10   pkg-config,
12   # buildInputs
13   Accelerate,
14   blas,
15   lapack,
17   # dependencies
18   scipy,
20   # check inputs
21   pytestCheckHook,
24 buildPythonPackage rec {
25   pname = "scs";
26   version = "3.2.7";
27   pyproject = true;
29   src = fetchFromGitHub {
30     owner = "bodono";
31     repo = "scs-python";
32     rev = "refs/tags/${version}";
33     hash = "sha256-ZhY4h0C8aF3IjD9NMtevcNTSqX+tIUao9bC+WlP+uDk=";
34     fetchSubmodules = true;
35   };
37   postPatch = ''
38     substituteInPlace pyproject.toml \
39       --replace-fail "numpy >= 2.0.0" "numpy"
40   '';
42   build-system = [
43     meson-python
44     numpy
45     pkg-config
46   ];
48   buildInputs =
49     if stdenv.hostPlatform.isDarwin then
50       [ Accelerate ]
51     else
52       [
53         blas
54         lapack
55       ];
57   dependencies = [
58     numpy
59     scipy
60   ];
62   nativeCheckInputs = [ pytestCheckHook ];
63   pythonImportsCheck = [ "scs" ];
65   meta = {
66     description = "Python interface for SCS: Splitting Conic Solver";
67     longDescription = ''
68       Solves convex cone programs via operator splitting.
69       Can solve: linear programs (LPs), second-order cone programs (SOCPs), semidefinite programs (SDPs),
70       exponential cone programs (ECPs), and power cone programs (PCPs), or problems with any combination of those cones.
71     '';
72     homepage = "https://github.com/cvxgrp/scs"; # upstream C package
73     downloadPage = "https://github.com/bodono/scs-python";
74     license = lib.licenses.mit;
75     maintainers = with lib.maintainers; [ drewrisinger ];
76   };