at master 1.5 kB view raw
1{ 2 lib, 3 stdenv, 4 buildPythonPackage, 5 pythonOlder, 6 fetchFromGitHub, 7 writableTmpDirAsHomeHook, 8 9 # build-system 10 hatchling, 11 12 # dependencies 13 pytools, 14 pymbolic, 15 genpy, 16 numpy, 17 cgen, 18 islpy, 19 codepy, 20 colorama, 21 mako, 22 constantdict, 23 typing-extensions, 24 25 # optional-dependencies 26 pyopencl, 27 fparser, 28 ply, 29}: 30 31buildPythonPackage rec { 32 pname = "loopy"; 33 version = "2025.2"; 34 pyproject = true; 35 36 disabled = pythonOlder "3.10"; 37 38 src = fetchFromGitHub { 39 owner = "inducer"; 40 repo = "loopy"; 41 tag = "v${version}"; 42 hash = "sha256-VgsUOMCIg61mYNDMcGpMs5I1CkobhUFVjoQFdD8Vchs="; 43 fetchSubmodules = true; # submodule at `loopy/target/c/compyte` 44 }; 45 46 build-system = [ hatchling ]; 47 48 nativeBuildInputs = [ writableTmpDirAsHomeHook ]; 49 50 dependencies = [ 51 pytools 52 pymbolic 53 genpy 54 numpy 55 cgen 56 islpy 57 codepy 58 colorama 59 mako 60 constantdict 61 typing-extensions 62 ]; 63 64 optional-dependencies = { 65 pyopencl = [ 66 pyopencl 67 ]; 68 fortran = [ 69 fparser 70 ply 71 ]; 72 }; 73 74 pythonImportsCheck = [ "loopy" ]; 75 76 # pyopencl._cl.LogicError: clGetPlatformIDs failed: PLATFORM_NOT_FOUND_KHR 77 doCheck = false; 78 79 meta = { 80 description = "Code generator for array-based code on CPUs and GPUs"; 81 homepage = "https://github.com/inducer/loopy"; 82 changelog = "https://github.com/inducer/loopy/releases/tag/${src.tag}"; 83 license = lib.licenses.mit; 84 maintainers = with lib.maintainers; [ tomasajt ]; 85 }; 86}