From 6a8ed622cc8232e2ceb947431d16d07cb6757b82 Mon Sep 17 00:00:00 2001 From: wxt <3264117476@qq.com> Date: Sun, 15 Dec 2024 19:53:11 +0800 Subject: [PATCH] python312Packages.picos: 2.0 -> 2.5 (cherry picked from commit 1186e7e8ddbc603f835a72a43dd2032d9f872fc6) --- .../python-modules/picos/default.nix | 38 +++++++++++++------ 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/pkgs/development/python-modules/picos/default.nix b/pkgs/development/python-modules/picos/default.nix index 5d5e715ec6486..0dbc12aa42a41 100644 --- a/pkgs/development/python-modules/picos/default.nix +++ b/pkgs/development/python-modules/picos/default.nix @@ -1,41 +1,57 @@ { lib, buildPythonPackage, - fetchFromGitLab, + fetchPypi, numpy, cvxopt, python, networkx, + scipy, + pythonOlder, + stdenv, }: buildPythonPackage rec { pname = "picos"; - version = "2.0"; + version = "2.5.1"; format = "setuptools"; - src = fetchFromGitLab { - owner = "picos-api"; - repo = "picos"; - rev = "v${version}"; - sha256 = "1k65iq791k5r08gh2kc6iz0xw1wyzqik19j6iam8ip732r7jm607"; + src = fetchPypi { + inherit pname version; + hash = "sha256-Zmtzhfeu0FURK7pCDJ7AsZc6ElZfrt73rVH3g8OkkCs="; }; # Needed only for the tests nativeCheckInputs = [ networkx ]; - propagatedBuildInputs = [ + dependencies = [ numpy cvxopt + scipy ]; + postPatch = + lib.optionalString (pythonOlder "3.12") '' + substituteInPlace picos/modeling/problem.py \ + --replace-fail "mappingproxy(OrderedDict({'x': <3×1 Real Variable: x>}))" "mappingproxy(OrderedDict([('x', <3×1 Real Variable: x>)]))" + '' + # TypeError: '<=' not supported between instances of 'ComplexAffineExpression' and 'float' + + lib.optionalString (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) '' + rm tests/ptest_quantentr.py + ''; + checkPhase = '' + runHook preCheck + ${python.interpreter} test.py + + runHook postCheck ''; - meta = with lib; { + meta = { description = "Python interface to conic optimization solvers"; homepage = "https://gitlab.com/picos-api/picos"; - license = licenses.gpl3; - maintainers = with maintainers; [ tobiasBora ]; + license = lib.licenses.gpl3; + maintainers = with lib.maintainers; [ tobiasBora ]; }; }