1{ stdenv, buildPythonPackage, fetchPypi, makeDesktopItem, jedi, pycodestyle,
2 psutil, pyflakes, rope, numpy, scipy, matplotlib, pylint, keyring, numpydoc,
3 qtconsole, qtawesome, nbconvert, mccabe, pyopengl, cloudpickle, pygments,
4 spyder-kernels, qtpy, pyzmq, chardet
5, pyqtwebengine
6}:
7
8buildPythonPackage rec {
9 pname = "spyder";
10 version = "3.3.6";
11
12 src = fetchPypi {
13 inherit pname version;
14 sha256 = "1z7qw1h3rhca12ycv8xrzw6z2gf81v0j6lfq9kpwh472w4vk75v1";
15 };
16
17 propagatedBuildInputs = [
18 jedi pycodestyle psutil pyflakes rope numpy scipy matplotlib pylint keyring
19 numpydoc qtconsole qtawesome nbconvert mccabe pyopengl cloudpickle spyder-kernels
20 pygments qtpy pyzmq chardet pyqtwebengine
21 ];
22
23 # There is no test for spyder
24 doCheck = false;
25
26 desktopItem = makeDesktopItem {
27 name = "Spyder";
28 exec = "spyder";
29 icon = "spyder";
30 comment = "Scientific Python Development Environment";
31 desktopName = "Spyder";
32 genericName = "Python IDE";
33 categories = "Application;Development;Editor;IDE;";
34 };
35
36 postPatch = ''
37 # remove dependency on pyqtwebengine
38 # this is still part of the pyqt 5.11 version we have in nixpkgs
39 sed -i /pyqtwebengine/d setup.py
40 substituteInPlace setup.py --replace "pyqt5<5.13" "pyqt5"
41 '';
42
43 # Create desktop item
44 postInstall = ''
45 mkdir -p $out/share/icons
46 cp spyder/images/spyder.svg $out/share/icons
47 cp -r $desktopItem/share/applications/ $out/share
48 '';
49
50 meta = with stdenv.lib; {
51 description = "Scientific python development environment";
52 longDescription = ''
53 Spyder (previously known as Pydee) is a powerful interactive development
54 environment for the Python language with advanced editing, interactive
55 testing, debugging and introspection features.
56 '';
57 homepage = "https://github.com/spyder-ide/spyder/";
58 license = licenses.mit;
59 platforms = platforms.linux;
60 maintainers = with maintainers; [ gebner ];
61 };
62}