about summary refs log tree commit diff
path: root/pkgs/development/python-modules/gmpy2/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules/gmpy2/default.nix')
-rw-r--r--pkgs/development/python-modules/gmpy2/default.nix84
1 files changed, 63 insertions, 21 deletions
diff --git a/pkgs/development/python-modules/gmpy2/default.nix b/pkgs/development/python-modules/gmpy2/default.nix
index b5a602d4f222f..58f4cc08f6720 100644
--- a/pkgs/development/python-modules/gmpy2/default.nix
+++ b/pkgs/development/python-modules/gmpy2/default.nix
@@ -1,37 +1,79 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, isPyPy
-, gmp
-, mpfr
-, libmpc
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPyPy,
+  pythonOlder,
+  setuptools,
+  gmp,
+  mpfr,
+  libmpc,
+  pytestCheckHook,
+  hypothesis,
+  cython,
+  mpmath,
+  # Reverse dependency
+  sage,
 }:
 
-let
+buildPythonPackage rec {
   pname = "gmpy2";
-  version = "2.1.2";
-  format = "setuptools";
-in
+  version = "2.2.0a2";
+  pyproject = true;
 
-buildPythonPackage {
-  inherit pname version;
-
-  disabled = isPyPy;
+  disabled = isPyPy || pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "aleaxit";
     repo = "gmpy";
-    rev = "gmpy2-${version}";
-    hash = "sha256-ARCttNzRA+Ji2j2NYaSCDXgvoEg01T9BnYadyqON2o0=";
+    rev = "refs/tags/gmpy2-${version}";
+    hash = "sha256-luLEDEY1cezhzZo4fXmM/MUg2YyAaz7n0HwSpbNayP8=";
   };
 
-  buildInputs = [ gmp mpfr libmpc ];
+  build-system = [ setuptools ];
+
+  buildInputs = [
+    gmp
+    mpfr
+    libmpc
+  ];
+
+  # make relative imports in tests work properly
+  preCheck = ''
+    rm gmpy2 -r
+  '';
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    hypothesis
+    cython
+    mpmath
+  ];
+
+  disabledTests =
+    lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
+      # issue with some overflow logic
+      "test_mpz_to_bytes"
+      "test_mpz_from_bytes"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # TypeError: mpq() requires numeric or string argument
+      # not sure why it only fails on Darwin
+      "test_mpq_from_Decimal"
+    ];
 
   pythonImportsCheck = [ "gmpy2" ];
 
-  meta = with lib; {
-    description = "GMP/MPIR, MPFR, and MPC interface to Python 2.6+ and 3.x";
+  passthru.tests = {
+    inherit sage;
+  };
+
+  meta = {
+    changelog = "https://github.com/aleaxit/gmpy/blob/${src.rev}/docs/history.rst";
+    description = "Interface to GMP, MPFR, and MPC for Python 3.7+";
     homepage = "https://github.com/aleaxit/gmpy/";
-    license = licenses.gpl3Plus;
+    license = lib.licenses.lgpl3Plus;
+    maintainers = with lib.maintainers; [ tomasajt ];
   };
 }