depot/third_party/nixpkgs/pkgs/development/python-modules/spyder/default.nix

143 lines
2.8 KiB
Nix
Raw Normal View History

{
lib,
buildPythonPackage,
fetchPypi,
pythonOlder,
atomicwrites,
chardet,
cloudpickle,
cookiecutter,
diff-match-patch,
intervaltree,
jedi,
jellyfish,
keyring,
matplotlib,
nbconvert,
numpy,
numpydoc,
pickleshare,
psutil,
pygments,
pylint-venv,
pyls-spyder,
pyopengl,
pyqtwebengine,
python-lsp-black,
python-lsp-server,
pyxdg,
pyzmq,
qdarkstyle,
qstylizer,
qtawesome,
qtconsole,
qtpy,
rope,
rtree,
scipy,
setuptools,
spyder-kernels,
textdistance,
three-merge,
watchdog,
}:
buildPythonPackage rec {
pname = "spyder";
version = "5.5.4";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchPypi {
inherit pname version;
hash = "sha256-UiIyoFREfd3gV0uhSgZ8TVFQiP3yprrBZDOm3+8Dge0=";
};
patches = [ ./dont-clear-pythonpath.patch ];
build-system = [
pyqtwebengine.wrapQtAppsHook
setuptools
];
dependencies = [
atomicwrites
chardet
cloudpickle
cookiecutter
diff-match-patch
intervaltree
jedi
jellyfish
keyring
matplotlib
nbconvert
numpy
numpydoc
pickleshare
psutil
pygments
pylint-venv
pyls-spyder
pyopengl
pyqtwebengine
python-lsp-black
python-lsp-server
pyxdg
pyzmq
qdarkstyle
qstylizer
qtawesome
qtconsole
qtpy
rope
rtree
scipy
spyder-kernels
textdistance
three-merge
watchdog
] ++ python-lsp-server.optional-dependencies.all;
# There is no test for spyder
doCheck = false;
postPatch = ''
# Remove dependency on pyqtwebengine
# This is still part of the pyqt 5.11 version we have in nixpkgs
sed -i /pyqtwebengine/d setup.py
substituteInPlace setup.py \
--replace "qdarkstyle>=3.0.2,<3.1.0" "qdarkstyle" \
--replace "ipython>=7.31.1,<8.0.0" "ipython"
'';
postInstall = ''
# Add Python libs to env so Spyder subprocesses
# created to run compute kernels don't fail with ImportErrors
wrapProgram $out/bin/spyder --prefix PYTHONPATH : "$PYTHONPATH"
'';
dontWrapQtApps = true;
preFixup = ''
makeWrapperArgs+=("''${qtWrapperArgs[@]}")
'';
meta = with lib; {
description = "Scientific python development environment";
mainProgram = "spyder";
longDescription = ''
Spyder (previously known as Pydee) is a powerful interactive development
environment for the Python language with advanced editing, interactive
testing, debugging and introspection features.
'';
homepage = "https://www.spyder-ide.org/";
downloadPage = "https://github.com/spyder-ide/spyder/releases";
changelog = "https://github.com/spyder-ide/spyder/blob/master/CHANGELOG.md";
license = licenses.mit;
maintainers = with maintainers; [ gebner ];
platforms = platforms.linux;
};
}