diff --git a/pkgs/development/libraries/symengine/default.nix b/pkgs/development/libraries/symengine/default.nix new file mode 100644 index 00000000000..40e1a280aa2 --- /dev/null +++ b/pkgs/development/libraries/symengine/default.nix @@ -0,0 +1,47 @@ +{ stdenv +, fetchFromGitHub +, cmake +, gmp +, flint +, mpfr +, libmpc +}: + +stdenv.mkDerivation rec { + name = "symengine-${version}"; + version = "0.4.0"; + + src = fetchFromGitHub { + owner = "symengine"; + repo = "symengine"; + rev = "v${version}"; + sha256 = "1kz893p3pmsw3gfwickk2nliw8p63yp89xriad7kpw4kmhvgr8gb"; + }; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ gmp flint mpfr libmpc ]; + + cmakeFlags = [ + "-DWITH_FLINT=ON" + "-DINTEGER_CLASS=flint" + "-DWITH_SYMENGINE_THREAD_SAFE=yes" + "-DWITH_MPC=yes" + "-DBUILD_FOR_DISTRIBUTION=yes" + ]; + + doCheck = true; + + checkPhase = '' + ctest + ''; + + meta = with stdenv.lib; { + description = "SymEngine is a fast symbolic manipulation library"; + homepage = https://github.com/symengine/symengine; + platforms = platforms.unix ++ platforms.windows; + license = licenses.bsd3; + maintainers = [ maintainers.costrouc ]; + }; + +} diff --git a/pkgs/development/python-modules/cgen/default.nix b/pkgs/development/python-modules/cgen/default.nix new file mode 100644 index 00000000000..e0317249fe9 --- /dev/null +++ b/pkgs/development/python-modules/cgen/default.nix @@ -0,0 +1,34 @@ +{ lib +, buildPythonPackage +, fetchPypi +, pytools +, numpy +, pytest +}: + +buildPythonPackage rec { + pname = "cgen"; + version = "2017.1"; + + src = fetchPypi { + inherit pname version; + sha256 = "a04525d51ee975d37d590d6d82bf80a46e77f75187cccfd2248a89616a778795"; + }; + + checkInputs = [ pytest ]; + propagatedBuildInputs = [ + pytools + numpy + ]; + + checkPhase = '' + pytest + ''; + + meta = with lib; { + description = "C/C++ source generation from an AST"; + homepage = https://github.com/inducer/cgen; + license = licenses.mit; + maintainers = [ maintainers.costrouc ]; + }; +} diff --git a/pkgs/development/python-modules/genpy/default.nix b/pkgs/development/python-modules/genpy/default.nix new file mode 100644 index 00000000000..0a8344f8b92 --- /dev/null +++ b/pkgs/development/python-modules/genpy/default.nix @@ -0,0 +1,29 @@ +{ lib +, buildPythonPackage +, fetchPypi +, pytools +, numpy +, pytest +}: + +buildPythonPackage rec { + pname = "genpy"; + version = "2016.1.3"; + + src = fetchPypi { + inherit pname version; + sha256 = "1c11726f1e8ace8bbdfc87816403c9a59f53a8c3d45c99187ae17c9725d87a91"; + }; + + propagatedBuildInputs = [ + pytools + numpy + ]; + + meta = with lib; { + description = "C/C++ source generation from an AST"; + homepage = https://github.com/inducer/genpy; + license = licenses.mit; + maintainers = [ maintainers.costrouc ]; + }; +} diff --git a/pkgs/development/python-modules/islpy/default.nix b/pkgs/development/python-modules/islpy/default.nix new file mode 100644 index 00000000000..6274da95b32 --- /dev/null +++ b/pkgs/development/python-modules/islpy/default.nix @@ -0,0 +1,41 @@ +{ lib +, buildPythonPackage +, fetchPypi +, isl +, pytest +, cffi +, six +}: + +buildPythonPackage rec { + pname = "islpy"; + version = "2018.2"; + + src = fetchPypi { + inherit pname version; + sha256 = "be422a53b576210a0bb9775866abb6580b1e568222fc3e4e39d9e82f6d1d7253"; + }; + + postConfigure = '' + substituteInPlace setup.py \ + --replace "\"pytest>=2\"," "" + ''; + + buildInputs = [ isl ]; + checkInputs = [ pytest ]; + propagatedBuildInputs = [ + cffi + six + ]; + + checkPhase = '' + pytest test + ''; + + meta = with lib; { + description = "Python wrapper around isl, an integer set library"; + homepage = https://github.com/inducer/islpy; + license = licenses.mit; + maintainers = [ maintainers.costrouc ]; + }; +} diff --git a/pkgs/development/python-modules/loo-py/default.nix b/pkgs/development/python-modules/loo-py/default.nix new file mode 100644 index 00000000000..fe765f5ff0a --- /dev/null +++ b/pkgs/development/python-modules/loo-py/default.nix @@ -0,0 +1,51 @@ +{ lib +, buildPythonPackage +, fetchPypi +, pytools +, pymbolic +, genpy +, cgen +, islpy +, six +, colorama +, mako +, pyopencl +, pytest +}: + +buildPythonPackage rec { + pname = "loo-py"; + version = "2017.2"; + + src = fetchPypi { + pname = "loo.py"; + inherit version; + sha256 = "c656992de48b328cdaccd7d1f14eb522b9dd5a1d0d15f54623f4ab18fd219abc"; + }; + + checkInputs = [ pytest ]; + propagatedBuildInputs = [ + pytools + pymbolic + genpy + cgen + islpy + six + colorama + mako + pyopencl + ]; + + # pyopencl._cl.LogicError: clGetPlatformIDs failed: PLATFORM_NOT_FOUND_KHR + doCheck = false; + checkPhase = '' + HOME=$(mktemp -d) pytest test + ''; + + meta = with lib; { + description = "A code generator for array-based code on CPUs and GPUs"; + homepage = https://mathema.tician.de/software/loopy; + license = licenses.mit; + maintainers = [ maintainers.costrouc ]; + }; +} diff --git a/pkgs/development/python-modules/pymbolic/default.nix b/pkgs/development/python-modules/pymbolic/default.nix new file mode 100644 index 00000000000..0d13b377b13 --- /dev/null +++ b/pkgs/development/python-modules/pymbolic/default.nix @@ -0,0 +1,44 @@ +{ lib +, buildPythonPackage +, fetchPypi +, pytools +, pytest +, six +, sympy +, pexpect +, symengine +}: + +buildPythonPackage rec { + pname = "pymbolic"; + version = "2018.1"; + + src = fetchPypi { + inherit pname version; + sha256 = "a47d5524d6a3cdc8a028079ce632eeb45ceea7243272d234f250622087688207"; + }; + + postConfigure = '' + substituteInPlace setup.py \ + --replace "\"pytest>=2.3\"," "" + ''; + + checkInputs = [ sympy pexpect symengine pytest ]; + propagatedBuildInputs = [ + pytools + six + ]; + + # too many tests fail + doCheck = false; + checkPhase = '' + pytest test + ''; + + meta = with lib; { + description = "A package for symbolic computation"; + homepage = https://mathema.tician.de/software/pymbolic; + license = licenses.mit; + maintainers = [ maintainers.costrouc ]; + }; +} diff --git a/pkgs/development/python-modules/symengine/default.nix b/pkgs/development/python-modules/symengine/default.nix new file mode 100644 index 00000000000..a2c0578f0c7 --- /dev/null +++ b/pkgs/development/python-modules/symengine/default.nix @@ -0,0 +1,52 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, cython +, cmake +, symengine +, pytest +, sympy +, python +}: + +buildPythonPackage rec { + pname = "symengine"; + version = "0.4.0"; + + src = fetchFromGitHub { + owner = "symengine"; + repo = "symengine.py"; + rev = "v${version}"; + sha256 = "07i9rwxphi4zgwc7y6f6qvq73iym2cx4k1bpd7rmd3wkpgrrfxqx"; + }; + + postConfigure = '' + substituteInPlace setup.py \ + --replace "\"cmake\"" "\"${cmake}/bin/cmake\"" + + substituteInPlace cmake/FindCython.cmake \ + --replace "SET(CYTHON_BIN cython" "SET(CYTHON_BIN ${cython}/bin/cython" + ''; + + buildInputs = [ cython cmake ]; + + checkInputs = [ pytest sympy ]; + + setupPyBuildFlags = [ + "--symengine-dir=${symengine}/" + "--define=\"CYTHON_BIN=${cython}/bin/cython\"" + ]; + + checkPhase = '' + mkdir empty + cd empty + ${python.interpreter} ../bin/test_python.py + ''; + + meta = with lib; { + description = "Python library providing wrappers to SymEngine"; + homepage = https://github.com/symengine/symengine.py; + license = licenses.mit; + maintainers = [ maintainers.costrouc ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 28775aca01b..34391a10257 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6018,6 +6018,8 @@ in svtplay-dl = callPackage ../tools/misc/svtplay-dl { }; + symengine = callPackage ../development/libraries/symengine { }; + sysbench = callPackage ../development/tools/misc/sysbench {}; system-config-printer = callPackage ../tools/misc/system-config-printer { diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index fde30019bc9..09c1d12951c 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1233,6 +1233,8 @@ in { cement = callPackage ../development/python-modules/cement {}; + cgen = callPackage ../development/python-modules/cgen { }; + cgroup-utils = callPackage ../development/python-modules/cgroup-utils {}; chainer = callPackage ../development/python-modules/chainer { @@ -1781,6 +1783,8 @@ in { locket = callPackage ../development/python-modules/locket { }; + loo-py = callPackage ../development/python-modules/loo-py { }; + tblib = callPackage ../development/python-modules/tblib { }; s3fs = callPackage ../development/python-modules/s3fs { }; @@ -2081,6 +2085,8 @@ in { isbnlib = callPackage ../development/python-modules/isbnlib { }; + islpy = callPackage ../development/python-modules/islpy { }; + itsdangerous = callPackage ../development/python-modules/itsdangerous { }; iniparse = callPackage ../development/python-modules/iniparse { }; @@ -2283,6 +2289,8 @@ in { pylama = callPackage ../development/python-modules/pylama { }; + pymbolic = callPackage ../development/python-modules/pymbolic { }; + pymediainfo = callPackage ../development/python-modules/pymediainfo { }; pyphen = callPackage ../development/python-modules/pyphen {}; @@ -4664,6 +4672,10 @@ in { python-vagrant = callPackage ../development/python-modules/python-vagrant { }; + symengine = callPackage ../development/python-modules/symengine { + symengine = pkgs.symengine; + }; + sympy = callPackage ../development/python-modules/sympy { }; pilkit = callPackage ../development/python-modules/pilkit { }; @@ -5439,6 +5451,8 @@ in { gensim = callPackage ../development/python-modules/gensim { }; + genpy = callPackage ../development/python-modules/genpy { }; + cymem = callPackage ../development/python-modules/cymem { }; ftfy = callPackage ../development/python-modules/ftfy { };