1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pythonOlder,
6 astropy,
7 dill,
8 echo,
9 fast-histogram,
10 h5py,
11 ipython,
12 matplotlib,
13 mpl-scatter-density,
14 numpy,
15 openpyxl,
16 pandas,
17 pyqt-builder,
18 pytestCheckHook,
19 qt6,
20 scipy,
21 setuptools,
22 setuptools-scm,
23 shapely,
24 xlrd,
25}:
26
27buildPythonPackage rec {
28 pname = "glueviz";
29 version = "1.23.0";
30 pyproject = true;
31
32 disabled = pythonOlder "3.8";
33
34 src = fetchFromGitHub {
35 owner = "glue-viz";
36 repo = "glue";
37 tag = "v${version}";
38 hash = "sha256-Ql5eMyMm48zNLQ3tkPyqM4+r3QfxqVAGHx1/LcLUiyo=";
39 };
40
41 buildInputs = [ pyqt-builder ];
42
43 nativeBuildInputs = [ qt6.wrapQtAppsHook ];
44
45 build-system = [
46 setuptools
47 setuptools-scm
48 ];
49
50 dependencies = [
51 astropy
52 dill
53 echo
54 fast-histogram
55 h5py
56 ipython
57 matplotlib
58 mpl-scatter-density
59 numpy
60 openpyxl
61 pandas
62 scipy
63 setuptools
64 shapely
65 xlrd
66 ];
67
68 dontConfigure = true;
69
70 # collecting ... qt.qpa.xcb: could not connect to display
71 # qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
72 doCheck = false;
73
74 nativeCheckInputs = [ pytestCheckHook ];
75
76 pythonImportsCheck = [ "glue" ];
77
78 dontWrapQtApps = true;
79
80 preFixup = ''
81 makeWrapperArgs+=("''${qtWrapperArgs[@]}")
82 '';
83
84 meta = with lib; {
85 homepage = "https://glueviz.org";
86 description = "Linked Data Visualizations Across Multiple Files";
87 license = licenses.bsd3; # https://github.com/glue-viz/glue/blob/main/LICENSE
88 maintainers = with maintainers; [ ifurther ];
89 };
90}