diff --git a/pkgs/development/python-modules/islpy/default.nix b/pkgs/development/python-modules/islpy/default.nix index ca84beae2eef..83f0b26c0047 100644 --- a/pkgs/development/python-modules/islpy/default.nix +++ b/pkgs/development/python-modules/islpy/default.nix @@ -1,41 +1,71 @@ -{ lib -, buildPythonPackage -, fetchPypi -, isl -, pybind11 -, pytestCheckHook -, pythonOlder -, six +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pythonOlder, + + setuptools, + cmake, + nanobind, + ninja, + pcpp, + scikit-build, + isl, + + pytestCheckHook, }: buildPythonPackage rec { pname = "islpy"; version = "2023.2.5"; - format = "setuptools"; + pyproject = true; - disabled = pythonOlder "3.6"; + disabled = pythonOlder "3.8"; - src = fetchPypi { - inherit pname version; - sha256 = "sha256-3XQ5i682k4q7fCqdmCjMGi5UnGyASFzsiwaymr+q0Y8="; + src = fetchFromGitHub { + owner = "inducer"; + repo = "islpy"; + rev = "v${version}"; + hash = "sha256-0m41G5HlPrgt4rDY3Y9cKBJGHSnLg/R+IywBO1anRpQ="; }; - postConfigure = '' - substituteInPlace setup.py \ - --replace "\"pytest>=2\"," "" + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail "setuptools>=42,<64;python_version<'3.12'" "setuptools>=42" ''; - buildInputs = [ isl pybind11 ]; - propagatedBuildInputs = [ six ]; + build-system = [ + setuptools + cmake + nanobind + ninja + pcpp + scikit-build + ]; + + buildInputs = [ isl ]; + + dontUseCmakeConfigure = true; + + preConfigure = '' + python ./configure.py \ + --no-use-shipped-isl \ + --isl-inc-dir=${lib.getDev isl}/include \ + ''; + + # Force resolving the package from $out to make generated ext files usable by tests + preCheck = '' + mv islpy islpy.hidden + ''; - preCheck = "mv islpy islpy.hidden"; nativeCheckInputs = [ pytestCheckHook ]; + pythonImportsCheck = [ "islpy" ]; - meta = with lib; { + meta = { description = "Python wrapper around isl, an integer set library"; homepage = "https://github.com/inducer/islpy"; - license = licenses.mit; - maintainers = [ ]; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ tomasajt ]; }; } diff --git a/pkgs/development/python-modules/loopy/default.nix b/pkgs/development/python-modules/loopy/default.nix index 995c99e100ec..488d055b7213 100644 --- a/pkgs/development/python-modules/loopy/default.nix +++ b/pkgs/development/python-modules/loopy/default.nix @@ -1,39 +1,47 @@ -{ lib -, buildPythonPackage -, codepy -, cgen -, colorama -, fetchFromGitHub -, genpy -, islpy -, mako -, numpy -, pymbolic -, pyopencl -, pyrsistent -, pythonOlder -, pytools +{ + lib, + buildPythonPackage, + codepy, + cgen, + colorama, + fetchFromGitHub, + genpy, + immutables, + islpy, + mako, + numpy, + pymbolic, + pyopencl, + pyrsistent, + pythonOlder, + pytools, + setuptools, + typing-extensions, }: buildPythonPackage rec { pname = "loopy"; version = "2024.1"; - format = "setuptools"; + pyproject = true; - disabled = pythonOlder "3.7"; + disabled = pythonOlder "3.8"; src = fetchFromGitHub { owner = "inducer"; - repo = pname; + repo = "loopy"; rev = "refs/tags/v${version}"; - hash = "sha256-R0Wry4r8Y7VKqsyrZ3odEOUy4T9di9rFQzq7BD0LG58="; + hash = "sha256-mU8vXEPR88QpJpzXZlZdDhMtlwIx5YpeYhXU8Vw2T9g="; + fetchSubmodules = true; # submodule at `loopy/target/c/compyte` }; - propagatedBuildInputs = [ + build-system = [ setuptools ]; + + dependencies = [ codepy cgen colorama genpy + immutables islpy mako numpy @@ -41,15 +49,22 @@ buildPythonPackage rec { pyopencl pyrsistent pytools + typing-extensions ]; + postConfigure = '' + export HOME=$(mktemp -d) + ''; + + pythonImportsCheck = [ "loopy" ]; + # pyopencl._cl.LogicError: clGetPlatformIDs failed: PLATFORM_NOT_FOUND_KHR doCheck = false; - meta = with lib; { + meta = { description = "A code generator for array-based code on CPUs and GPUs"; homepage = "https://github.com/inducer/loopy"; - license = licenses.mit; - maintainers = with maintainers; [ ]; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ tomasajt ]; }; } diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index b2b19b976c0a..edb54973535d 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5917,7 +5917,9 @@ self: super: with self; { isbnlib = callPackage ../development/python-modules/isbnlib { }; - islpy = callPackage ../development/python-modules/islpy { }; + islpy = callPackage ../development/python-modules/islpy { + isl = pkgs.isl_0_24; + }; iso3166 = callPackage ../development/python-modules/iso3166 { };