From 4431542b8267143a5876f687ed429f5589cba5e5 Mon Sep 17 00:00:00 2001 From: Drew Risinger Date: Mon, 27 Jan 2020 15:14:46 -0500 Subject: [PATCH] pythonPackages.scs: init at 2.1.1 Depends on libraries.science.math.scs. Required by cvxpy -> qiskit-aer. Co-authored-by: bhipple --- .../python-modules/scs/default.nix | 56 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 58 insertions(+) create mode 100644 pkgs/development/python-modules/scs/default.nix diff --git a/pkgs/development/python-modules/scs/default.nix b/pkgs/development/python-modules/scs/default.nix new file mode 100644 index 00000000000..4e500d68535 --- /dev/null +++ b/pkgs/development/python-modules/scs/default.nix @@ -0,0 +1,56 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, blas +, liblapack +, numpy +, scipy +, scs + # check inputs +, nose +}: + +buildPythonPackage rec { + inherit (scs) pname version; + + src = fetchFromGitHub { + owner = "bodono"; + repo = "scs-python"; + rev = "f02abdc0e2e0a5851464e30f6766ccdbb19d73f0"; # need to choose commit manually, untagged + sha256 = "174b5s7cwgrn1m55jlrszdl403zhpzc4yl9acs6kjv9slmg1mmjr"; + }; + + preConfigure = '' + rm -r scs + ln -s ${scs.src} scs + ''; + + buildInputs = [ + liblapack + blas + ]; + + propagatedBuildInputs = [ + numpy + scipy + ]; + + checkInputs = [ nose ]; + checkPhase = '' + nosetests + ''; + pythonImportsCheck = [ "scs" ]; + + meta = with lib; { + description = "Python interface for SCS: Splitting Conic Solver"; + longDescription = '' + Solves convex cone programs via operator splitting. + Can solve: linear programs (LPs), second-order cone programs (SOCPs), semidefinite programs (SDPs), + exponential cone programs (ECPs), and power cone programs (PCPs), or problems with any combination of those cones. + ''; + homepage = "https://github.com/cvxgrp/scs"; # upstream C package + downloadPage = "https://github.com/bodono/scs-python"; + license = licenses.gpl3; + maintainers = with maintainers; [ drewrisinger ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 2b9a8bb8c25..7451215072d 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5080,6 +5080,8 @@ in { python-simple-hipchat = callPackage ../development/python-modules/python-simple-hipchat {}; python_simple_hipchat = self.python-simple-hipchat; + scs = callPackage ../development/python-modules/scs { scs = pkgs.scs; }; + python_keyczar = callPackage ../development/python-modules/python_keyczar { }; python-language-server = callPackage ../development/python-modules/python-language-server {};