diff options
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/clarabel/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/python-modules/clarabel/default.nix | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/clarabel/default.nix b/nixpkgs/pkgs/development/python-modules/clarabel/default.nix new file mode 100644 index 000000000000..46cdc7c57611 --- /dev/null +++ b/nixpkgs/pkgs/development/python-modules/clarabel/default.nix @@ -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 ]; + }; +} |