1{
2 lib,
3 fetchFromGitHub,
4 buildPythonPackage,
5 setuptools,
6 pytestCheckHook,
7 numpy,
8 scipy,
9 bumps,
10 docutils,
11 matplotlib,
12 opencl-headers,
13 pycuda,
14 pyopencl,
15 pythonOlder,
16}:
17
18buildPythonPackage rec {
19 pname = "sasmodels";
20 version = "1.0.10";
21 pyproject = true;
22
23 disabled = pythonOlder "3.7";
24
25 src = fetchFromGitHub {
26 owner = "SasView";
27 repo = "sasmodels";
28 tag = "v${version}";
29 hash = "sha256-cTXFlTCm521+xhcggFvDqVZrTJuDiVZ8PazBwA3mKJU=";
30 };
31
32 build-system = [ setuptools ];
33
34 buildInputs = [ opencl-headers ];
35
36 dependencies = [
37 numpy
38 scipy
39 ];
40
41 optional-dependencies = {
42 full = [
43 docutils
44 bumps
45 matplotlib
46 # columnize
47 ];
48 server = [ bumps ];
49 opencl = [ pyopencl ];
50 cuda = [ pycuda ];
51 };
52
53 nativeCheckInputs = [ pytestCheckHook ] ++ optional-dependencies.full;
54
55 preCheck = ''
56 export HOME=$TMPDIR
57 '';
58
59 pythonImportsCheck = [ "sasmodels" ];
60
61 meta = with lib; {
62 description = "Library of small angle scattering models";
63 homepage = "https://github.com/SasView/sasmodels";
64 license = licenses.bsd3;
65 maintainers = with maintainers; [ rprospero ];
66 };
67}