nixpkgs/pkgs/development/python-modules/cvxpy/default.nix
Guillaume Girol 33afbf39f6 treewide: switch to nativeCheckInputs
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.
2023-01-21 12:00:00 +00:00

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 ];
};
}