33afbf39f6
checkInputs used to be added to nativeBuildInputs. Now we have nativeCheckInputs to do that instead. Doing this treewide change allows to keep hashes identical to before the introduction of nativeCheckInputs.
75 lines
1.6 KiB
Nix
75 lines
1.6 KiB
Nix
{ lib
|
|
, stdenv
|
|
, pythonOlder
|
|
, buildPythonPackage
|
|
, fetchPypi
|
|
, cvxopt
|
|
, ecos
|
|
, numpy
|
|
, osqp
|
|
, scipy
|
|
, scs
|
|
, setuptools
|
|
, useOpenmp ? (!stdenv.isDarwin)
|
|
# Check inputs
|
|
, pytestCheckHook
|
|
}:
|
|
|
|
buildPythonPackage rec {
|
|
pname = "cvxpy";
|
|
version = "1.2.3";
|
|
format = "pyproject";
|
|
|
|
disabled = pythonOlder "3.5";
|
|
|
|
src = fetchPypi {
|
|
inherit pname version;
|
|
hash = "sha256-IaeUtv0vdgqddm1o++SUZTT2Xom3Pom4icVQOYVVi4Y=";
|
|
};
|
|
|
|
postPatch = ''
|
|
substituteInPlace setup.py \
|
|
--replace "setuptools <= 64.0.2" "setuptools"
|
|
'';
|
|
|
|
propagatedBuildInputs = [
|
|
cvxopt
|
|
ecos
|
|
numpy
|
|
osqp
|
|
scipy
|
|
scs
|
|
setuptools
|
|
];
|
|
|
|
# Required flags from https://github.com/cvxgrp/cvxpy/releases/tag/v1.1.11
|
|
preBuild = lib.optionalString useOpenmp ''
|
|
export CFLAGS="-fopenmp"
|
|
export LDFLAGS="-lgomp"
|
|
'';
|
|
|
|
nativeCheckInputs = [ pytestCheckHook ];
|
|
|
|
pytestFlagsArray = [ "./cvxpy" ];
|
|
|
|
# Disable the slowest benchmarking tests, cuts test time in half
|
|
disabledTests = [
|
|
"test_tv_inpainting"
|
|
"test_diffcp_sdp_example"
|
|
"test_huber"
|
|
"test_partial_problem"
|
|
] ++ lib.optionals stdenv.isAarch64 [
|
|
"test_ecos_bb_mi_lp_2" # https://github.com/cvxgrp/cvxpy/issues/1241#issuecomment-780912155
|
|
];
|
|
|
|
pythonImportsCheck = [ "cvxpy" ];
|
|
|
|
meta = with lib; {
|
|
description = "A domain-specific language for modeling convex optimization problems in Python";
|
|
homepage = "https://www.cvxpy.org/";
|
|
downloadPage = "https://github.com/cvxgrp/cvxpy/releases";
|
|
changelog = "https://github.com/cvxgrp/cvxpy/releases/tag/v${version}";
|
|
license = licenses.asl20;
|
|
maintainers = with maintainers; [ drewrisinger ];
|
|
};
|
|
}
|