at 22.05-pre 1.5 kB view raw
1{ lib 2, stdenv 3, pythonOlder 4, buildPythonPackage 5, fetchPypi 6, cvxopt 7, ecos 8, numpy 9, osqp 10, scipy 11, scs 12, useOpenmp ? (!stdenv.isDarwin) 13 # Check inputs 14, pytestCheckHook 15}: 16 17buildPythonPackage rec { 18 pname = "cvxpy"; 19 version = "1.1.17"; 20 format = "pyproject"; 21 22 disabled = pythonOlder "3.5"; 23 24 src = fetchPypi { 25 inherit pname version; 26 sha256 = "sha256-M5fTuJ13Dqnw/DWbHJs6/t5qDTvqHP8g4mU7E0Uc24o="; 27 }; 28 29 propagatedBuildInputs = [ 30 cvxopt 31 ecos 32 numpy 33 osqp 34 scipy 35 scs 36 ]; 37 38 # Required flags from https://github.com/cvxgrp/cvxpy/releases/tag/v1.1.11 39 preBuild = lib.optionalString useOpenmp '' 40 export CFLAGS="-fopenmp" 41 export LDFLAGS="-lgomp" 42 ''; 43 44 checkInputs = [ pytestCheckHook ]; 45 46 pytestFlagsArray = [ "./cvxpy" ]; 47 48 # Disable the slowest benchmarking tests, cuts test time in half 49 disabledTests = [ 50 "test_tv_inpainting" 51 "test_diffcp_sdp_example" 52 ] ++ lib.optionals stdenv.isAarch64 [ 53 "test_ecos_bb_mi_lp_2" # https://github.com/cvxgrp/cvxpy/issues/1241#issuecomment-780912155 54 ]; 55 56 pythonImportsCheck = [ "cvxpy" ]; 57 58 meta = with lib; { 59 description = "A domain-specific language for modeling convex optimization problems in Python"; 60 homepage = "https://www.cvxpy.org/"; 61 downloadPage = "https://github.com/cvxgrp/cvxpy/releases"; 62 changelog = "https://github.com/cvxgrp/cvxpy/releases/tag/v${version}"; 63 license = licenses.asl20; 64 maintainers = with maintainers; [ drewrisinger ]; 65 }; 66}