1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pythonOlder,
6 setuptools,
7 setuptools-scm,
8 libxcrypt,
9 numpy,
10 qt6,
11 qtpy,
12 pyqt6,
13 pytestCheckHook,
14 pytest-cov-stub,
15}:
16
17buildPythonPackage rec {
18 pname = "echo";
19 version = "0.10.0";
20 format = "setuptools";
21
22 disabled = pythonOlder "3.6";
23
24 src = fetchFromGitHub {
25 owner = "glue-viz";
26 repo = pname;
27 tag = "v${version}";
28 sha256 = "sha256-RlTscoStJQ0vjrrk14xHRsMZOJt8eJSqinc4rY/lW4k=";
29 };
30
31 nativeBuildInputs = [
32 setuptools
33 setuptools-scm
34 qt6.wrapQtAppsHook
35 ];
36
37 buildInputs = lib.optionals (pythonOlder "3.9") [ libxcrypt ];
38
39 propagatedBuildInputs = [
40 qt6.qtconnectivity
41 qt6.qtbase
42 qt6.qttools
43 pyqt6
44 numpy
45 qtpy
46 ];
47
48 # collecting ... qt.qpa.xcb: could not connect to display
49 # qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
50 doCheck = false;
51
52 nativeCheckInputs = [
53 pytestCheckHook
54 pytest-cov-stub
55 ];
56
57 pythonImportsCheck = [ "echo" ];
58
59 meta = with lib; {
60 homepage = "https://github.com/glue-viz/echo";
61 description = "Callback Properties in Python";
62 license = licenses.mit;
63 maintainers = with maintainers; [ ifurther ];
64 };
65}