From cf4e702b2c990fe39248fb31936aea56cbfe7e96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Wed, 23 Jun 2021 00:46:58 +0200 Subject: [PATCH 1/3] cq-editor: use default version of spyder --- .../graphics/cq-editor/default.nix | 6 +- .../graphics/cq-editor/spyder4.patch | 58 +++++++++++++++++++ 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 pkgs/applications/graphics/cq-editor/spyder4.patch diff --git a/pkgs/applications/graphics/cq-editor/default.nix b/pkgs/applications/graphics/cq-editor/default.nix index cf94f4fa32d1..b9b2eb368735 100644 --- a/pkgs/applications/graphics/cq-editor/default.nix +++ b/pkgs/applications/graphics/cq-editor/default.nix @@ -16,13 +16,17 @@ mkDerivationWith python3Packages.buildPythonApplication rec { sha256 = "1970izjaa60r5cg9i35rzz9lk5c5d8q1vw1rh2skvfbf63z1hnzv"; }; + patches = [ + ./spyder4.patch + ]; + propagatedBuildInputs = with python3Packages; [ cadquery Logbook pyqt5 pyparsing pyqtgraph - spyder_3 + spyder pathpy qtconsole requests diff --git a/pkgs/applications/graphics/cq-editor/spyder4.patch b/pkgs/applications/graphics/cq-editor/spyder4.patch new file mode 100644 index 000000000000..49813b18a0c0 --- /dev/null +++ b/pkgs/applications/graphics/cq-editor/spyder4.patch @@ -0,0 +1,58 @@ +diff --git a/cq_editor/widgets/debugger.py b/cq_editor/widgets/debugger.py +index b7398fb..d039db5 100644 +--- a/cq_editor/widgets/debugger.py ++++ b/cq_editor/widgets/debugger.py +@@ -162,7 +162,7 @@ class Debugger(QObject,ComponentMixin): + + def get_breakpoints(self): + +- return self.parent().components['editor'].get_breakpoints() ++ return self.parent().components['editor'].debugger.get_breakpoints() + + def compile_code(self,cq_script): + +@@ -178,12 +178,14 @@ class Debugger(QObject,ComponentMixin): + def _exec(self, code, locals_dict, globals_dict): + + with ExitStack() as stack: +- p = Path(self.parent().components['editor'].filename).dirname() +- if self.preferences['Add script dir to path'] and p: ++ fname = self.parent().components['editor'].filename ++ p = Path(fname if fname else '').abspath().dirname() ++ if self.preferences['Add script dir to path'] and p.exists(): + sys.path.append(p) + stack.callback(sys.path.remove, p) +- if self.preferences['Change working dir to script dir'] and p: ++ if self.preferences['Change working dir to script dir'] and p.exists(): + stack.enter_context(p) ++ + exec(code, locals_dict, globals_dict) + + def _inject_locals(self,module): +diff --git a/cq_editor/widgets/editor.py b/cq_editor/widgets/editor.py +index 45aa048..2763469 100644 +--- a/cq_editor/widgets/editor.py ++++ b/cq_editor/widgets/editor.py +@@ -1,4 +1,4 @@ +-from spyder.widgets.sourcecode.codeeditor import CodeEditor ++from spyder.plugins.editor.widgets.codeeditor import CodeEditor + from PyQt5.QtCore import pyqtSignal, QFileSystemWatcher, QTimer + from PyQt5.QtWidgets import QAction, QFileDialog + from PyQt5.QtGui import QFontDatabase +@@ -32,6 +32,8 @@ class Editor(CodeEditor,ComponentMixin): + + def __init__(self,parent=None): + ++ self._watched_file = None ++ + super(Editor,self).__init__(parent) + ComponentMixin.__init__(self) + +@@ -83,7 +85,6 @@ class Editor(CodeEditor,ComponentMixin): + + # autoreload support + self._file_watcher = QFileSystemWatcher(self) +- self._watched_file = None + # we wait for 50ms after a file change for the file to be written completely + self._file_watch_timer = QTimer(self) + self._file_watch_timer.setInterval(50) From 388ec14073190ef9255515a9535fc60c70deac92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Wed, 23 Jun 2021 00:48:54 +0200 Subject: [PATCH 2/3] pythonPackages.spyder_3: drop Versioned attributes in python-packages.nix should be avoided. --- pkgs/development/python-modules/spyder/3.nix | 48 -------------------- pkgs/top-level/python-packages.nix | 2 - 2 files changed, 50 deletions(-) delete mode 100644 pkgs/development/python-modules/spyder/3.nix diff --git a/pkgs/development/python-modules/spyder/3.nix b/pkgs/development/python-modules/spyder/3.nix deleted file mode 100644 index 2618ccfcd8c5..000000000000 --- a/pkgs/development/python-modules/spyder/3.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ lib, buildPythonPackage, fetchFromGitHub, jedi, pycodestyle, - psutil, pyflakes, rope, pylint, keyring, numpydoc, - qtconsole, qtawesome, nbconvert, mccabe, pyopengl, cloudpickle, pygments, - spyder-kernels_0_5, qtpy, pyzmq, chardet, pyqtwebengine -}: - -buildPythonPackage rec { - pname = "spyder"; - version = "3.3.6"; - - src = fetchFromGitHub { - owner = "spyder-ide"; - repo = "spyder"; - rev = "v3.3.6"; - sha256 = "1sk9xajhzpklk5bcbdhpfhx3gxhyrahsmj9bv2m6kvbqxdlx6bq6"; - }; - - propagatedBuildInputs = [ - jedi pycodestyle psutil pyflakes rope pylint keyring numpydoc - qtconsole qtawesome nbconvert mccabe pyopengl cloudpickle spyder-kernels_0_5 - pygments qtpy pyzmq chardet pyqtwebengine - ]; - - # tests fail with a segfault - doCheck = false; - - postPatch = '' - # remove dependency on pyqtwebengine - # this is still part of the pyqt 5.13 version we have in nixpkgs - sed -i /pyqtwebengine/d setup.py - substituteInPlace setup.py --replace "pyqt5<5.13" "pyqt5" - ''; - - pythonImportsCheck = [ "spyder" ]; - - meta = with lib; { - description = "Library providing a scientific python development environment"; - 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://github.com/spyder-ide/spyder/"; - license = licenses.mit; - platforms = platforms.linux; - maintainers = with maintainers; [ gebner marcus7070 ]; - }; -} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 29913ff47bc0..ea4a6019518d 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -8153,8 +8153,6 @@ in { spyder = callPackage ../development/python-modules/spyder { }; - spyder_3 = callPackage ../development/python-modules/spyder/3.nix { }; - spyder-kernels = callPackage ../development/python-modules/spyder-kernels { }; spyder-kernels_0_5 = callPackage ../development/python-modules/spyder-kernels/0.x.nix { }; From 1dc70c3b9e08fa1a156f855be7134d67317135aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Wed, 23 Jun 2021 00:49:34 +0200 Subject: [PATCH 3/3] pythonPackages.spyder-kernels_0_5: drop Versioned attributes in python-packages.nix should be avoided. --- .../python-modules/spyder-kernels/0.x.nix | 72 ------------------- pkgs/top-level/python-packages.nix | 2 - 2 files changed, 74 deletions(-) delete mode 100644 pkgs/development/python-modules/spyder-kernels/0.x.nix diff --git a/pkgs/development/python-modules/spyder-kernels/0.x.nix b/pkgs/development/python-modules/spyder-kernels/0.x.nix deleted file mode 100644 index 43a2f5b460f6..000000000000 --- a/pkgs/development/python-modules/spyder-kernels/0.x.nix +++ /dev/null @@ -1,72 +0,0 @@ -{ lib -, buildPythonPackage -, fetchFromGitHub -, cloudpickle -, ipykernel -, wurlitzer -, jupyter_client -, pyzmq -, numpy -, pandas -, scipy -, matplotlib -, xarray -, pytestCheckHook -, flaky -, isPy3k -}: - -buildPythonPackage rec { - pname = "spyder-kernels"; - version = "0.5.2"; - - src = fetchFromGitHub { - owner = "spyder-ide"; - repo = "spyder-kernels"; - rev = "v${version}"; - sha256 = "1yan589g0470y61bcyjy3wj13i94ndyffckqdyrg97vw2qhfrisb"; - }; - - # requirement xarray not available on Py2k - disabled = !isPy3k; - - propagatedBuildInputs = [ - cloudpickle - ipykernel - wurlitzer - jupyter_client - pyzmq - ]; - - checkInputs = [ - numpy - pandas - scipy - matplotlib - xarray - pytestCheckHook - flaky - ]; - - preCheck = '' - export JUPYTER_RUNTIME_DIR=$(mktemp -d) - ''; - - # skipped tests: - # turtle requires graphics - # cython test fails, I don't think this can ever access cython? - # umr pathlist test assumes standard directories, not compatible with nix - disabledTests = [ - "test_turtle_launc" - "test_umr_skip_cython" - "test_umr_pathlist" - "test_user_sitepackages_in_pathlist" - ]; - - meta = with lib; { - description = "Jupyter kernels for Spyder's console"; - homepage = "https://github.com/spyder-ide/spyder-kernels"; - license = licenses.mit; - maintainers = with maintainers; [ gebner marcus7070 ]; - }; -} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index ea4a6019518d..9b15efe3deb9 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -8155,8 +8155,6 @@ in { spyder-kernels = callPackage ../development/python-modules/spyder-kernels { }; - spyder-kernels_0_5 = callPackage ../development/python-modules/spyder-kernels/0.x.nix { }; - sqlalchemy = callPackage ../development/python-modules/sqlalchemy { }; sqlalchemy-citext = callPackage ../development/python-modules/sqlalchemy-citext { };