at 24.11-pre 1.3 kB view raw
1{ 2 lib, 3 stdenv, 4 buildPythonPackage, 5 fetchFromGitHub, 6 isPyPy, 7 pythonOlder, 8 setuptools, 9 gmp, 10 mpfr, 11 libmpc, 12 pytestCheckHook, 13 hypothesis, 14 cython, 15 mpmath, 16 # Reverse dependency 17 sage, 18}: 19 20buildPythonPackage rec { 21 pname = "gmpy2"; 22 version = "2.2.0a2"; 23 pyproject = true; 24 25 disabled = isPyPy || pythonOlder "3.7"; 26 27 src = fetchFromGitHub { 28 owner = "aleaxit"; 29 repo = "gmpy"; 30 rev = "refs/tags/gmpy2-${version}"; 31 hash = "sha256-luLEDEY1cezhzZo4fXmM/MUg2YyAaz7n0HwSpbNayP8="; 32 }; 33 34 build-system = [ setuptools ]; 35 36 buildInputs = [ 37 gmp 38 mpfr 39 libmpc 40 ]; 41 42 # make relative imports in tests work properly 43 preCheck = '' 44 rm gmpy2 -r 45 ''; 46 47 nativeCheckInputs = [ 48 pytestCheckHook 49 hypothesis 50 cython 51 mpmath 52 ]; 53 54 disabledTests = lib.optionals (stdenv.isLinux && stdenv.isAarch64) [ 55 # issue with some overflow logic 56 "test_mpz_to_bytes" 57 "test_mpz_from_bytes" 58 ]; 59 60 pythonImportsCheck = [ "gmpy2" ]; 61 62 passthru.tests = { 63 inherit sage; 64 }; 65 66 meta = { 67 changelog = "https://github.com/aleaxit/gmpy/blob/${src.rev}/docs/history.rst"; 68 description = "Interface to GMP, MPFR, and MPC for Python 3.7+"; 69 homepage = "https://github.com/aleaxit/gmpy/"; 70 license = lib.licenses.lgpl3Plus; 71 maintainers = with lib.maintainers; [ tomasajt ]; 72 }; 73}