Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / clarabel / default.nix
blob7e098000002df822e197220832ae81bfb6d43db1
1 { lib
2 , stdenv
3 , buildPythonPackage
4 , fetchPypi
5 , rustPlatform
6 , libiconv
7 , numpy
8 , scipy
9 , nix-update-script
12 buildPythonPackage rec {
13   pname = "clarabel";
14   version = "0.7.1";
15   pyproject = true;
17   src = fetchPypi {
18     inherit pname version;
19     hash = "sha256-owqxNfR1xbx4Mp/X31dSkRVeYFW8rwISTrYQuK0XY5Y=";
20   };
22   cargoDeps = rustPlatform.fetchCargoTarball {
23     inherit src;
24     name = "${pname}-${version}";
25     hash = "sha256-Tg9K66WIIAZyua8QlKrlUnpRJRmuxe7ihIr2Vqg79NQ=";
26   };
28   nativeBuildInputs = with rustPlatform; [
29     cargoSetupHook
30     maturinBuildHook
31   ];
33   buildInputs = lib.optional stdenv.isDarwin libiconv;
35   propagatedBuildInputs = [
36     numpy
37     scipy
38   ];
40   pythonImportsCheck = [
41     "clarabel"
42   ];
44   # no tests but run the same examples as .github/workflows/pypi.yaml
45   checkPhase = ''
46     runHook preCheck
47     python examples/python/example_sdp.py
48     python examples/python/example_qp.py
49     runHook postCheck
50   '';
52   passthru.updateScript = nix-update-script { };
54   meta = {
55     changelog = "https://github.com/oxfordcontrol/Clarabel.rs/releases/tag/v${version}/CHANGELOG.md";
56     description = "Conic Interior Point Solver";
57     homepage = "https://github.com/oxfordcontrol/Clarabel.rs";
58     license = lib.licenses.asl20;
59     maintainers = [ ];
60   };