1{
2 lib,
3 gitUpdater,
4 stdenv,
5 buildPythonPackage,
6 setuptools,
7 fetchFromGitHub,
8 pyqt5,
9 pyqtwebengine,
10 matplotlib,
11 orange-canvas-core,
12 pyqtgraph,
13 typing-extensions,
14 qt5,
15 pytestCheckHook,
16 pytest-qt,
17 appnope,
18}:
19
20buildPythonPackage rec {
21 pname = "orange-widget-base";
22 version = "4.26.0";
23 pyproject = true;
24
25 src = fetchFromGitHub {
26 owner = "biolab";
27 repo = "orange-widget-base";
28 tag = version;
29 hash = "sha256-XoQlZaY6pAflL0vWzSALDABOPybqV28xB/AS8L0DcBc=";
30 };
31
32 build-system = [ setuptools ];
33
34 dependencies = [
35 matplotlib
36 orange-canvas-core
37 pyqt5
38 pyqtgraph
39 pyqtwebengine
40 typing-extensions
41 ]
42 ++ lib.optionals stdenv.hostPlatform.isDarwin [ appnope ];
43
44 pythonImportsCheck = [ "orangewidget" ];
45
46 preCheck = ''
47 export HOME=$(mktemp -d)
48 export QT_PLUGIN_PATH="${qt5.qtbase.bin}/${qt5.qtbase.qtPluginPrefix}"
49 export QT_QPA_PLATFORM_PLUGIN_PATH="${qt5.qtbase.bin}/lib/qt-${qt5.qtbase.version}/plugins";
50 export QT_QPA_PLATFORM=offscreen
51 '';
52
53 nativeCheckInputs = [
54 pytest-qt
55 pytestCheckHook
56 ];
57
58 disabledTestPaths = [
59 "orangewidget/report/tests/test_report.py"
60 "orangewidget/tests/test_widget.py"
61 ];
62
63 passthru.updateScript = gitUpdater { };
64
65 meta = {
66 description = "Implementation of the base OWBaseWidget class and utilities for use in Orange Canvas workflows";
67 homepage = "https://github.com/biolab/orange-widget-base";
68 license = [ lib.licenses.gpl3Plus ];
69 maintainers = [ lib.maintainers.lucasew ];
70 };
71}