linux_xanmod: 5.11.14 -> 5.11.15
[NixPkgs.git] / pkgs / development / python-modules / spyder / default.nix
blobdd65079e6a1358681ea8285ed983a1fe9876aa51
1 { lib, buildPythonPackage, fetchPypi, isPy27, makeDesktopItem, intervaltree,
2   jedi, pycodestyle, psutil, pyflakes, rope, numpy, scipy, matplotlib, pylint,
3   keyring, numpydoc, qtconsole, qtawesome, nbconvert, mccabe, pyopengl,
4   cloudpickle, pygments, spyder-kernels, qtpy, pyzmq, chardet, qdarkstyle,
5   watchdog, python-language-server, pyqtwebengine, atomicwrites, pyxdg,
6   diff-match-patch, three-merge, pyls-black, pyls-spyder, flake8
7 }:
9 buildPythonPackage rec {
10   pname = "spyder";
11   version = "4.2.1";
13   disabled = isPy27;
15   src = fetchPypi {
16     inherit pname version;
17     sha256 = "7f93bc5b8b119cc1e195ce3efcc1598386e082c4096334c1fa2b018938ac79b9";
18   };
20   nativeBuildInputs = [ pyqtwebengine.wrapQtAppsHook ];
22   propagatedBuildInputs = [
23     intervaltree jedi pycodestyle psutil pyflakes rope numpy scipy matplotlib pylint keyring
24     numpydoc qtconsole qtawesome nbconvert mccabe pyopengl cloudpickle spyder-kernels
25     pygments qtpy pyzmq chardet pyqtwebengine qdarkstyle watchdog python-language-server
26     atomicwrites pyxdg diff-match-patch three-merge pyls-black pyls-spyder
27     flake8
28   ];
30   # There is no test for spyder
31   doCheck = false;
33   desktopItem = makeDesktopItem {
34     name = "Spyder";
35     exec = "spyder";
36     icon = "spyder";
37     comment = "Scientific Python Development Environment";
38     desktopName = "Spyder";
39     genericName = "Python IDE";
40     categories = "Development;IDE;";
41   };
43   postPatch = ''
44     # remove dependency on pyqtwebengine
45     # this is still part of the pyqt 5.11 version we have in nixpkgs
46     sed -i /pyqtwebengine/d setup.py
47     substituteInPlace setup.py \
48       --replace "pyqt5<5.13" "pyqt5" \
49       --replace "parso==0.7.0" "parso"
50   '';
52   postInstall = ''
53     # add Python libs to env so Spyder subprocesses
54     # created to run compute kernels don't fail with ImportErrors
55     wrapProgram $out/bin/spyder --prefix PYTHONPATH : "$PYTHONPATH"
57     # Create desktop item
58     mkdir -p $out/share/icons
59     cp spyder/images/spyder.svg $out/share/icons
60     cp -r $desktopItem/share/applications/ $out/share
61   '';
63   dontWrapQtApps = true;
65   preFixup = ''
66     makeWrapperArgs+=("''${qtWrapperArgs[@]}")
67   '';
69   meta = with lib; {
70     description = "Scientific python development environment";
71     longDescription = ''
72       Spyder (previously known as Pydee) is a powerful interactive development
73       environment for the Python language with advanced editing, interactive
74       testing, debugging and introspection features.
75     '';
76     homepage = "https://www.spyder-ide.org/";
77     downloadPage = "https://github.com/spyder-ide/spyder/releases";
78     changelog = "https://github.com/spyder-ide/spyder/blob/master/CHANGELOG.md";
79     license = licenses.mit;
80     platforms = platforms.linux;
81     maintainers = with maintainers; [ gebner ];
82   };