Merge pull request #280682 from a-n-n-a-l-e-e/clarabel-init

fix python3Packages.cvxpy build; add clarabel dependancy
This commit is contained in:
OTABI Tomoya 2024-01-15 15:00:54 +09:00 committed by GitHub
commit bcba1b03ce
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 1553 additions and 0 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,62 @@
{ lib
, stdenv
, buildPythonPackage
, fetchFromGitHub
, rustPlatform
, libiconv
, numpy
, scipy
}:
buildPythonPackage rec {
pname = "clarabel";
version = "0.6.0.post1";
pyproject = true;
src = fetchFromGitHub {
owner = "oxfordcontrol";
repo = "Clarabel.rs";
rev = "refs/tags/v${version}";
hash = "sha256-5Mw+3WRMuz3BxLWRdsnXHjetsNrM3EZRZld8lVTNKgo=";
};
cargoDeps = rustPlatform.importCargoLock {
lockFile = ./Cargo.lock;
};
postPatch = ''
ln -s ${./Cargo.lock} ./Cargo.lock
'';
nativeBuildInputs = with rustPlatform; [
cargoSetupHook
maturinBuildHook
];
buildInputs = lib.optional stdenv.isDarwin libiconv;
propagatedBuildInputs = [
numpy
scipy
];
pythonImportsCheck = [
"clarabel"
];
# no tests but run the same examples as .github/workflows/pypi.yaml
checkPhase = ''
runHook preCheck
python examples/python/example_sdp.py
python examples/python/example_qp.py
runHook postCheck
'';
meta = {
changelog = "https://github.com/oxfordcontrol/Clarabel.rs/releases/tag/v${version}/CHANGELOG.md";
description = "Conic Interior Point Solver";
homepage = "https://github.com/oxfordcontrol/Clarabel.rs";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ a-n-n-a-l-e-e ];
};
}

View file

@ -1,6 +1,7 @@
{ lib
, stdenv
, buildPythonPackage
, clarabel
, cvxopt
, ecos
, fetchPypi
@ -40,6 +41,7 @@ buildPythonPackage rec {
];
propagatedBuildInputs = [
clarabel
cvxopt
ecos
numpy

View file

@ -2081,6 +2081,8 @@ self: super: with self; {
ckcc-protocol = callPackage ../development/python-modules/ckcc-protocol { };
clarabel = callPackage ../development/python-modules/clarabel { };
clarifai = callPackage ../development/python-modules/clarifai { };
clarifai-grpc = callPackage ../development/python-modules/clarifai-grpc { };