1{
2 lib,
3 buildPythonPackage,
4 codepy,
5 cgen,
6 colorama,
7 fetchFromGitHub,
8 genpy,
9 immutables,
10 islpy,
11 mako,
12 numpy,
13 pymbolic,
14 pyopencl,
15 pyrsistent,
16 pythonOlder,
17 pytools,
18 setuptools,
19 typing-extensions,
20}:
21
22buildPythonPackage rec {
23 pname = "loopy";
24 version = "2024.1";
25 pyproject = true;
26
27 disabled = pythonOlder "3.8";
28
29 src = fetchFromGitHub {
30 owner = "inducer";
31 repo = "loopy";
32 rev = "refs/tags/v${version}";
33 hash = "sha256-mU8vXEPR88QpJpzXZlZdDhMtlwIx5YpeYhXU8Vw2T9g=";
34 fetchSubmodules = true; # submodule at `loopy/target/c/compyte`
35 };
36
37 build-system = [ setuptools ];
38
39 dependencies = [
40 codepy
41 cgen
42 colorama
43 genpy
44 immutables
45 islpy
46 mako
47 numpy
48 pymbolic
49 pyopencl
50 pyrsistent
51 pytools
52 typing-extensions
53 ];
54
55 postConfigure = ''
56 export HOME=$(mktemp -d)
57 '';
58
59 pythonImportsCheck = [ "loopy" ];
60
61 # pyopencl._cl.LogicError: clGetPlatformIDs failed: PLATFORM_NOT_FOUND_KHR
62 doCheck = false;
63
64 meta = {
65 description = "A code generator for array-based code on CPUs and GPUs";
66 homepage = "https://github.com/inducer/loopy";
67 license = lib.licenses.mit;
68 maintainers = with lib.maintainers; [ tomasajt ];
69 };
70}