diff --git a/pkgs/development/python-modules/cypari2/default.nix b/pkgs/development/python-modules/cypari2/default.nix new file mode 100644 index 000000000000..fc3c311a5061 --- /dev/null +++ b/pkgs/development/python-modules/cypari2/default.nix @@ -0,0 +1,55 @@ +{ stdenv +, bootstrapped-pip +, buildPythonPackage +, python +, fetchPypi +, pari +, gmp +, cython +, cysignals +, six +}: + +buildPythonPackage rec { + pname = "cypari2"; + version = "1.1.4"; # remove six dependency on upgrade to >1.1.4 + + src = fetchPypi { + inherit pname version; + sha256 = "0n0mp8qmvvzmfaawg39d3mkyzf65q2zkz7bnqyk4sfjbz4xwc6mb"; + }; + + # This differs slightly from the default python installPhase in that it pip-installs + # "." instead of "*.whl". + # That is because while the default install phase succeeds to build the package, + # it fails to generate the file "auto_paridecl.pxd". + installPhase = '' + mkdir -p "$out/lib/${python.libPrefix}/site-packages" + export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH" + + # install "." instead of "*.whl" + ${bootstrapped-pip}/bin/pip install --no-index --prefix=$out --no-cache --build=tmpdir . + ''; + + buildInputs = [ + pari + gmp + ]; + + propagatedBuildInputs = [ + cysignals + cython + six # after 1.1.4: will not be needed + ]; + + checkPhase = '' + make check + ''; + + meta = with stdenv.lib; { + description = "Cython bindings for PARI"; + license = licenses.gpl2; + maintainers = with maintainers; [ timokau ]; + homepage = https://github.com/defeo/cypari2; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index f0ffadc82d1b..5b1877875344 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1190,6 +1190,8 @@ in { cysignals = callPackage ../development/python-modules/cysignals { }; + cypari2 = callPackage ../development/python-modules/cypari2 { }; + dlib = buildPythonPackage rec { inherit (pkgs.dlib) name src nativeBuildInputs meta;