18 , oldest-supported-numpy
45 self = buildPythonPackage rec {
49 disabled = pythonOlder "3.7";
51 src = fetchFromGitHub {
54 rev = "refs/tags/${version}";
55 hash = "sha256-v9lk5vGhBaR2PHZ+Jq0hy1WaCsbeLe+vZlTaHBkfacU=";
59 substituteInPlace pyproject.toml \
60 --replace "setuptools>=41.0.0,<50.0" "setuptools"
61 sed -i 's;\(scikit-learn\)[^$]*;\1;g' requirements-core.txt
62 sed -i 's;pyqtgraph[^$]*;;g' requirements-gui.txt # TODO: remove after bump with a version greater than 0.13.1
68 oldest-supported-numpy
76 enableParallelBuilding = true;
78 propagatedBuildInputs = [
106 # FIXME: ImportError: cannot import name '_variable' from partially initialized module 'Orange.data' (most likely due to a circular import) (/build/source/Orange/data/__init__.py)
109 pythonImportsCheck = [ "Orange" "Orange.data._variable" ];
114 exec = "orange-canvas";
115 desktopName = "Orange Data Mining";
116 genericName = "Data Mining Suite";
117 comment = "Explore, analyze, and visualize your data";
118 icon = "orange-canvas";
119 mimeTypes = [ "application/x-extension-ows" ];
120 categories = [ "Science" "Education" "ArtificialIntelligence" "DataVisualization" "NumericalAnalysis" "Qt" ];
121 keywords = [ "Machine Learning" "Scientific Visualization" "Statistical Analysis" ];
126 wrapProgram $out/bin/orange-canvas \
127 "${"$"}{qtWrapperArgs[@]}"
128 mkdir -p $out/share/icons/hicolor/{256x256,48x48}/apps
129 cp distribute/icon-256.png $out/share/icons/hicolor/256x256/apps/orange-canvas.png
130 cp distribute/icon-48.png $out/share/icons/hicolor/48x48/apps/orange-canvas.png
134 updateScript = nix-update-script { };
135 tests.unittests = self.overridePythonAttrs (old: {
136 pname = "${old.pname}-tests";
140 export HOME=$(mktemp -d)
141 export QT_PLUGIN_PATH="${qt5.qtbase.bin}/${qt5.qtbase.qtPluginPrefix}"
142 export QT_QPA_PLATFORM_PLUGIN_PATH="${qt5.qtbase.bin}/lib/qt-${qt5.qtbase.version}/plugins";
143 export QT_QPA_PLATFORM=offscreen
146 cp -r ${self}/${python.sitePackages}/Orange .
149 rm Orange/tests/test_url_reader.py # uses network
150 rm Orange/tests/test_ada_boost.py # broken: The 'base_estimator' parameter of AdaBoostRegressor must be an object implementing 'fit' and 'predict' or a str among {'deprecated'}. Got None instead.
155 ${python.interpreter} -m unittest -b -v ./Orange/**/test*.py
164 nativeBuildInputs = [ self ] ++ old.nativeBuildInputs;
169 description = "Data mining and visualization toolbox for novice and expert alike";
170 homepage = "https://orangedatamining.com/";
171 changelog = "https://github.com/biolab/orange3/blob/${version}/CHANGELOG.md";
172 license = with licenses; [ gpl3Plus ];
173 maintainers = with maintainers; [ lucasew ];
174 mainProgram = "orange-canvas";