Hello community,
here is the log from the commit of package python-spyder-notebook for
openSUSE:Factory checked in at 2020-04-04 12:20:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-spyder-notebook (Old)
and /work/SRC/openSUSE:Factory/.python-spyder-notebook.new.3248 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-spyder-notebook"
Sat Apr 4 12:20:57 2020 rev:5 rq:789904 version:0.2.2
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-spyder-notebook/python-spyder-notebook.changes
2019-06-04 12:13:40.111795678 +0200
+++
/work/SRC/openSUSE:Factory/.python-spyder-notebook.new.3248/python-spyder-notebook.changes
2020-04-04 12:21:00.603705889 +0200
@@ -1,0 +2,25 @@
+Mon Mar 23 18:08:37 UTC 2020 - Benjamin Greiner <[email protected]>
+
+- update to version 0.2.2
+ + Issues Closed
+ * Issue 213 - closing_ipynb_tab (PR 232)
+ * Issue 192 - AttributeError: 'str' object has no attribute 'get' (PR 232)
+ + Pull Requests Merged
+ * PR 234 - PR: Use correct type for CONF_DEFAULTS
+ * PR 232 - PR: Make .get_kernel_id() more robust (213, 192)
+- rename spyder3 to spyder
+- enable unit tests
+
+-------------------------------------------------------------------
+Thu Jan 30 15:35:42 UTC 2020 - Todd R <[email protected]>
+
+- Update to Version 0.2.1
+ + Issues Closed
+ * Trying to save Jupyter notebook crashes notebook plugin, kernel shutdown
+ + Pull Requests Merged
+ * PR: Set default for recent_notebooks config value
+- Update to Version 0.2.0
+ + Pull Requests Merged
+ * PR: Compatibility changes for Spyder 4
+
+-------------------------------------------------------------------
Old:
----
spyder-notebook-0.1.4.tar.gz
New:
----
spyder-notebook-0.2.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-spyder-notebook.spec ++++++
--- /var/tmp/diff_new_pack.WR5gnh/_old 2020-04-04 12:21:01.079706298 +0200
+++ /var/tmp/diff_new_pack.WR5gnh/_new 2020-04-04 12:21:01.083706301 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-spyder-notebook
#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,19 +17,37 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
+%define skip_python2 1
Name: python-spyder-notebook
-Version: 0.1.4
+Version: 0.2.2
Release: 0
Summary: Jupyter notebook integration with Spyder
License: MIT
Group: Development/Languages/Python
-Url: https://github.com/spyder-ide/spyder-notebook
+URL: https://github.com/spyder-ide/spyder-notebook
Source:
https://files.pythonhosted.org/packages/source/s/spyder-notebook/spyder-notebook-%{version}.tar.gz
+Requires: python-QtPy
+Requires: python-nbformat
+Requires: python-notebook >= 4.3
+Requires: python-psutil
+Requires: python-requests
+Requires: spyder >= 4
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
-BuildArch: noarch
-
+# SECTION test requirements
+BuildRequires: %{python_module flaky}
+BuildRequires: %{python_module nbformat}
+BuildRequires: %{python_module notebook}
+BuildRequires: %{python_module psutil}
+BuildRequires: %{python_module pytest-mock}
+BuildRequires: %{python_module pytest-qt}
+BuildRequires: %{python_module pytest-xvfb}
+BuildRequires: %{python_module pytest}
+BuildRequires: %{python_module requests}
+BuildRequires: spyder >= 4
+BuildRequires: xdpyinfo
+# /SECTION
%python_subpackages
%description
@@ -42,12 +60,8 @@
%package -n spyder-notebook
Summary: Jupyter Notebook plugin for the Spyder IDE
Group: Development/Languages/Python
-Requires: python-QtPy
-Requires: python-nbformat
-Requires: python-notebook >= 4.3
-Requires: python-psutil
-Requires: python-requests
-Requires: spyder >= 3.2.0
+Provides: spyder3-notebook = %{version}
+Obsoletes: spyder3-notebook < %{version}
%description -n spyder-notebook
Spyder, the Scientific Python Development Environment, is an
@@ -56,23 +70,6 @@
This package contains the plugin that allows Spyder to control
breakpoints.
-%package -n spyder3-notebook
-Summary: Jupyter Notebook plugin for the Spyder3 IDE
-Group: Development/Languages/Python
-Requires: python3-QtPy
-Requires: python3-nbformat
-Requires: python3-notebook >= 4.3
-Requires: python3-psutil
-Requires: python3-requests
-Requires: spyder3 >= 3.2.0
-
-%description -n spyder3-notebook
-Spyder, the Scientific Python Development Environment, is an
-IDE for researchers, engineers and data analysts.
-
-This package contains the plugin that allows Spyder to control
-breakpoints.
-
%prep
%setup -q -n spyder-notebook-%{version}
sed -i 's/\r$//' CHANGELOG.md README.md
@@ -84,14 +81,19 @@
%python_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
-%files -n spyder-notebook
-%doc CHANGELOG.md README.md
-%license LICENSE
-%{python2_sitelib}/*
+%check
+# The unittests fail with a seccomp-bpf crash if the sandbox
+# is not disabled on i586
+%ifarch %ix86
+export QTWEBENGINE_DISABLE_SANDBOX=1
+%endif
+export PYTHONDONTWRITEBYTECODE=1
+%pytest
-%files -n spyder3-notebook
+%files -n spyder-notebook
%doc CHANGELOG.md README.md
%license LICENSE
-%{python3_sitelib}/*
+%{python_sitelib}/spyder_notebook
+%{python_sitelib}/spyder_notebook-%{version}-py*.egg-info
%changelog
++++++ spyder-notebook-0.1.4.tar.gz -> spyder-notebook-0.2.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/spyder-notebook-0.1.4/CHANGELOG.md
new/spyder-notebook-0.2.2/CHANGELOG.md
--- old/spyder-notebook-0.1.4/CHANGELOG.md 2018-12-22 19:43:05.000000000
+0100
+++ new/spyder-notebook-0.2.2/CHANGELOG.md 2020-02-26 13:31:06.000000000
+0100
@@ -1,3 +1,50 @@
+## Version 0.2.2 (2020/02/26)
+
+This release corrects the bug fix in version 0.2.1 which was triggered opening
or saving notebooks.
+
+### Issues Closed
+
+* [Issue 213](https://github.com/spyder-ide/spyder-notebook/issues/213) -
closing_ipynb_tab ([PR
232](https://github.com/spyder-ide/spyder-notebook/pull/232))
+* [Issue 192](https://github.com/spyder-ide/spyder-notebook/issues/192) -
AttributeError: 'str' object has no attribute 'get' ([PR
232](https://github.com/spyder-ide/spyder-notebook/pull/232))
+
+In this release 2 issues were closed.
+
+### Pull Requests Merged
+
+* [PR 234](https://github.com/spyder-ide/spyder-notebook/pull/234) - PR: Use
correct type for CONF_DEFAULTS
+* [PR 232](https://github.com/spyder-ide/spyder-notebook/pull/232) - PR: Make
.get_kernel_id() more robust
([213](https://github.com/spyder-ide/spyder-notebook/issues/213),
[192](https://github.com/spyder-ide/spyder-notebook/issues/192))
+
+In this release 2 pull requests were closed.
+
+
+## Version 0.2.1 (2019/12/31)
+
+This release fixes a major bug when opening or saving notebooks. Happy New
Year!
+
+### Issues Closed
+
+* [Issue 225](https://github.com/spyder-ide/spyder-notebook/issues/225) -
Trying to save Jupyter notebook crashes notebook plugin, kernel shutdown ([PR
229](https://github.com/spyder-ide/spyder-notebook/pull/229))
+
+In this release 1 issue was closed.
+
+### Pull Requests Merged
+
+* [PR 229](https://github.com/spyder-ide/spyder-notebook/pull/229) - PR: Set
default for recent_notebooks config value
([225](https://github.com/spyder-ide/spyder-notebook/issues/225))
+
+In this release 1 pull request was closed.
+
+
+## Version 0.2.0 (2019/12/17)
+
+This release updates the plugin to be used with Spyder 4.
+
+### Pull Requests Merged
+
+* [PR 218](https://github.com/spyder-ide/spyder-notebook/pull/218) - PR:
Compatibility changes for Spyder 4
+
+In this release 1 pull request was closed.
+
+
## Version 0.1.4 (2018/12/22)
This is a bug fix release, mainly to resolve an incompatibility with Spyder
3.3.2.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/spyder-notebook-0.1.4/PKG-INFO
new/spyder-notebook-0.2.2/PKG-INFO
--- old/spyder-notebook-0.1.4/PKG-INFO 2018-12-22 19:46:12.000000000 +0100
+++ new/spyder-notebook-0.2.2/PKG-INFO 2020-02-26 13:35:11.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: spyder-notebook
-Version: 0.1.4
+Version: 0.2.2
Summary: Jupyter notebook integration with Spyder
Home-page: https://github.com/spyder-ide/spyder-notebook
Author: Spyder Development Team
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/spyder-notebook-0.1.4/README.md
new/spyder-notebook-0.2.2/README.md
--- old/spyder-notebook-0.1.4/README.md 2018-08-21 19:51:04.000000000 +0200
+++ new/spyder-notebook-0.2.2/README.md 2019-12-17 16:11:33.000000000 +0100
@@ -18,29 +18,9 @@
## Build status
-[](https://circleci.com/gh/spyder-ide/spyder-notebook)
+[](https://circleci.com/gh/spyder-ide/spyder-notebook)
[](https://coveralls.io/github/spyder-ide/spyder-notebook?branch=master)
-
-----
-
-## Important Announcement: Spyder is unfunded!
-
-Since mid November/2017, [Anaconda, Inc](https://www.anaconda.com/) has
-stopped funding Spyder development, after doing it for the past 18
-months. Because of that, development will focus from now on maintaining
-Spyder 3 at a much slower pace than before.
-
-If you want to contribute to maintain Spyder, please consider donating at
-
-https://opencollective.com/spyder
-
-We appreciate all the help you can provide us and can't thank you enough for
-supporting the work of Spyder devs and Spyder development.
-
-If you want to know more about this, please read this
-[page](https://github.com/spyder-ide/spyder/wiki/Anaconda-stopped-funding-Spyder).
-
-----
+[](https://crowdin.com/project/spyder-notebook)
## Installation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/spyder-notebook-0.1.4/setup.py
new/spyder-notebook-0.2.2/setup.py
--- old/spyder-notebook-0.1.4/setup.py 2018-08-21 19:51:04.000000000 +0200
+++ new/spyder-notebook-0.2.2/setup.py 2019-12-17 16:11:33.000000000 +0100
@@ -35,7 +35,7 @@
return version
-REQUIREMENTS = ['spyder>=3.2.0', 'notebook>=4.3',
+REQUIREMENTS = ['spyder>=4', 'notebook>=4.3',
'qtpy', 'requests', 'psutil', 'nbformat']
setup(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/spyder-notebook-0.1.4/spyder_notebook/_version.py
new/spyder-notebook-0.2.2/spyder_notebook/_version.py
--- old/spyder-notebook-0.1.4/spyder_notebook/_version.py 2018-12-22
19:44:17.000000000 +0100
+++ new/spyder-notebook-0.2.2/spyder_notebook/_version.py 2020-02-26
13:34:33.000000000 +0100
@@ -1,3 +1,3 @@
"""Version File."""
-VERSION_INFO = (0, 1, 4)
+VERSION_INFO = (0, 2, 2)
__version__ = '.'.join(map(str, VERSION_INFO))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/spyder-notebook-0.1.4/spyder_notebook/notebookplugin.py
new/spyder-notebook-0.2.2/spyder_notebook/notebookplugin.py
--- old/spyder-notebook-0.1.4/spyder_notebook/notebookplugin.py 2018-12-22
19:36:50.000000000 +0100
+++ new/spyder-notebook-0.2.2/spyder_notebook/notebookplugin.py 2020-02-26
13:32:11.000000000 +0100
@@ -22,28 +22,15 @@
import nbformat
# Spyder imports
+from spyder.api.plugins import SpyderPluginWidget
from spyder.config.base import _
-from spyder.config.main import CONF
from spyder.utils import icon_manager as ima
+from spyder.utils.programs import get_temp_dir
from spyder.utils.qthelpers import (create_action, create_toolbutton,
add_actions, MENU_SEPARATOR)
+from spyder.utils.switcher import shorten_paths
from spyder.widgets.tabs import Tabs
-try:
- # Spyder >= 3.3.2
- from spyder.utils.programs import get_temp_dir
-except ImportError:
- # Spyder < 3.3.2
- from spyder.utils.programs import TEMPDIR
-
- def get_temp_dir():
- return TEMPDIR
-try:
- # Spyder 4
- from spyder.api.plugins import SpyderPluginWidget
-except ImportError:
- # Spyder 3
- from spyder.plugins import SpyderPluginWidget
# Local imports
from .utils.nbopen import nbopen, NBServerError
@@ -61,10 +48,14 @@
"""IPython Notebook plugin."""
CONF_SECTION = 'notebook'
+ CONF_DEFAULTS = [(CONF_SECTION, {'recent_notebooks': []})]
focus_changed = Signal()
def __init__(self, parent, testing=False):
"""Constructor."""
+ if testing:
+ self.CONF_FILE = False
+
SpyderPluginWidget.__init__(self, parent)
self.testing = testing
@@ -80,13 +71,10 @@
self.recent_notebook_menu = QMenu(_("Open recent"), self)
self.options_menu = QMenu(self)
- # Initialize plugin
- self.initialize_plugin()
-
layout = QVBoxLayout()
new_notebook_btn = create_toolbutton(self,
- icon=ima.icon('project_expanded'),
+ icon=ima.icon('options_more'),
tip=_('Open a new notebook'),
triggered=self.create_new_client)
menu_btn = create_toolbutton(self, icon=ima.icon('tooloptions'),
@@ -94,7 +82,6 @@
menu_btn.setMenu(self.options_menu)
menu_btn.setPopupMode(menu_btn.InstantPopup)
- add_actions(self.options_menu, self.menu_actions)
corner_widgets = {Qt.TopRightCorner: [new_notebook_btn, menu_btn]}
self.tabwidget = Tabs(self, menu=self.options_menu,
actions=self.menu_actions,
@@ -192,13 +179,17 @@
def register_plugin(self):
"""Register plugin in Spyder's main window."""
+ super(NotebookPlugin, self).register_plugin()
self.focus_changed.connect(self.main.plugin_focus_changed)
- self.main.add_dockwidget(self)
self.ipyconsole = self.main.ipyconsole
self.create_new_client(give_focus=False)
- icon_path = os.path.join(PACKAGE_PATH, 'images', 'icon.svg')
- self.main.add_to_fileswitcher(self, self.tabwidget, self.clients,
- QIcon(icon_path))
+
+ # Connect to switcher
+ self.switcher = self.main.switcher
+ self.switcher.sig_mode_selected.connect(self.handle_switcher_modes)
+ self.switcher.sig_item_selected.connect(
+ self.handle_switcher_selection)
+
self.recent_notebook_menu.aboutToShow.connect(self.setup_menu_actions)
def check_compatibility(self):
@@ -321,8 +312,8 @@
# Save spyder_pythonpath before creating a client
# because it's needed by our kernel spec.
if not self.testing:
- CONF.set('main', 'spyder_pythonpath',
- self.main.get_spyder_pythonpath())
+ self.set_option('main/spyder_pythonpath',
+ self.main.get_spyder_pythonpath())
# Open the notebook with nbopen and get the url we need to render
try:
@@ -461,11 +452,9 @@
index = self.tabwidget.addTab(widget, widget.get_short_name())
self.tabwidget.setCurrentIndex(index)
self.tabwidget.setTabToolTip(index, widget.get_filename())
- if self.dockwidget and not self.ismaximized:
- self.dockwidget.setVisible(True)
- self.dockwidget.raise_()
+ if self.dockwidget:
+ self.switch_to_plugin()
self.activateWindow()
- widget.notebookwidget.setFocus()
def move_tab(self, index_from, index_to):
"""Move tab."""
@@ -473,11 +462,45 @@
self.clients.insert(index_to, client)
# ------ Public API (for FileSwitcher) ------------------------------------
- def set_stack_index(self, index, instance):
- """Set the index of the current notebook."""
- if instance == self:
- self.tabwidget.setCurrentIndex(index)
-
- def get_current_tab_manager(self):
- """Get the widget with the TabWidget attribute."""
- return self
+ def handle_switcher_modes(self, mode):
+ """
+ Populate switcher with opened notebooks.
+
+ List the file names of the opened notebooks with their directories in
+ the switcher. Only handle file mode, where `mode` is empty string.
+ """
+ if mode != '':
+ return
+
+ paths = [client.get_filename() for client in self.clients]
+ is_unsaved = [False for client in self.clients]
+ short_paths = shorten_paths(paths, is_unsaved)
+ icon = QIcon(os.path.join(PACKAGE_PATH, 'images', 'icon.svg'))
+ section = self.get_plugin_title()
+
+ for path, short_path, client in zip(paths, short_paths, self.clients):
+ title = osp.basename(path)
+ description = osp.dirname(path)
+ if len(path) > 75:
+ description = short_path
+ is_last_item = (client == self.clients[-1])
+ self.switcher.add_item(
+ title=title, description=description, icon=icon,
+ section=section, data=client, last_item=is_last_item)
+
+ def handle_switcher_selection(self, item, mode, search_text):
+ """
+ Handle user selecting item in switcher.
+
+ If the selected item is not in the section of the switcher that
+ corresponds to this plugin, then ignore it. Otherwise, switch to
+ selected item in notebook plugin and hide the switcher.
+ """
+ if item.get_section() != self.get_plugin_title():
+ return
+
+ client = item.get_data()
+ index = self.clients.index(client)
+ self.tabwidget.setCurrentIndex(index)
+ self.switch_to_plugin()
+ self.switcher.hide()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/spyder-notebook-0.1.4/spyder_notebook/tests/test_plugin.py
new/spyder-notebook-0.2.2/spyder_notebook/tests/test_plugin.py
--- old/spyder-notebook-0.1.4/spyder_notebook/tests/test_plugin.py
2018-12-22 19:36:50.000000000 +0100
+++ new/spyder-notebook-0.2.2/spyder_notebook/tests/test_plugin.py
2019-12-17 16:11:33.000000000 +0100
@@ -107,7 +107,6 @@
notebook_plugin = NotebookPlugin(None, testing=True)
qtbot.addWidget(notebook_plugin)
notebook_plugin.create_new_client()
- notebook_plugin.show()
return notebook_plugin
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/spyder-notebook-0.1.4/spyder_notebook/widgets/client.py
new/spyder-notebook-0.2.2/spyder_notebook/widgets/client.py
--- old/spyder-notebook-0.1.4/spyder_notebook/widgets/client.py 2018-09-01
12:13:28.000000000 +0200
+++ new/spyder-notebook-0.2.2/spyder_notebook/widgets/client.py 2020-02-26
13:32:11.000000000 +0100
@@ -34,7 +34,6 @@
# Local imports
from ..widgets.dom import DOMWidget
-
# -----------------------------------------------------------------------------
# Templates
# -----------------------------------------------------------------------------
@@ -45,18 +44,11 @@
except NameError:
FileNotFoundError = IOError # Python 2
-try:
- # Spyder 4
- PLUGINS_PATH = get_module_source_path('spyder', 'plugins')
- CSS_PATH = osp.join(PLUGINS_PATH, 'help', 'utils', 'static', 'css')
- TEMPLATES_PATH = osp.join(
- PLUGINS_PATH, 'ipythonconsole', 'assets', 'templates')
- open(osp.join(TEMPLATES_PATH, 'blank.html'))
-except FileNotFoundError:
- # Spyder 3
- UTILS_PATH = get_module_source_path('spyder', 'utils')
- CSS_PATH = osp.join(UTILS_PATH, 'help', 'static', 'css')
- TEMPLATES_PATH = osp.join(UTILS_PATH, 'ipython', 'templates')
+PLUGINS_PATH = get_module_source_path('spyder', 'plugins')
+CSS_PATH = osp.join(PLUGINS_PATH, 'help', 'utils', 'static', 'css')
+TEMPLATES_PATH = osp.join(
+ PLUGINS_PATH, 'ipythonconsole', 'assets', 'templates')
+open(osp.join(TEMPLATES_PATH, 'blank.html'))
BLANK = open(osp.join(TEMPLATES_PATH, 'blank.html')).read()
LOADING = open(osp.join(TEMPLATES_PATH, 'loading.html')).read()
@@ -233,11 +225,26 @@
"""
Get the kernel id of the client.
- Return a str with the kernel id or None.
+ Return a str with the kernel id or None. On error, display a dialog
+ box and return None.
"""
sessions_url = self.get_session_url()
- sessions_req = requests.get(sessions_url).content.decode()
- sessions = json.loads(sessions_req)
+ try:
+ sessions_response = requests.get(sessions_url)
+ except requests.exceptions.RequestException as exception:
+ msg = _('Spyder could not get a list of sessions '
+ 'from the Jupyter Notebook server. '
+ 'Message: {}').format(exception)
+ QMessageBox.warning(self, _('Server error'), msg)
+ return None
+
+ sessions = json.loads(sessions_response.content.decode())
+ if sessions_response.status_code != requests.codes.ok:
+ msg = _('Spyder could not get a list of sessions '
+ 'from the Jupyter Notebook server. '
+ 'Message: {}').format(sessions.get('message'))
+ QMessageBox.warning(self, _('Server error'), msg)
+ return None
if os.name == 'nt':
path = self.path.replace('\\', '/')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/spyder-notebook-0.1.4/spyder_notebook.egg-info/PKG-INFO
new/spyder-notebook-0.2.2/spyder_notebook.egg-info/PKG-INFO
--- old/spyder-notebook-0.1.4/spyder_notebook.egg-info/PKG-INFO 2018-12-22
19:46:12.000000000 +0100
+++ new/spyder-notebook-0.2.2/spyder_notebook.egg-info/PKG-INFO 2020-02-26
13:35:10.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: spyder-notebook
-Version: 0.1.4
+Version: 0.2.2
Summary: Jupyter notebook integration with Spyder
Home-page: https://github.com/spyder-ide/spyder-notebook
Author: Spyder Development Team
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/spyder-notebook-0.1.4/spyder_notebook.egg-info/requires.txt
new/spyder-notebook-0.2.2/spyder_notebook.egg-info/requires.txt
--- old/spyder-notebook-0.1.4/spyder_notebook.egg-info/requires.txt
2018-12-22 19:46:12.000000000 +0100
+++ new/spyder-notebook-0.2.2/spyder_notebook.egg-info/requires.txt
2020-02-26 13:35:10.000000000 +0100
@@ -1,4 +1,4 @@
-spyder>=3.2.0
+spyder>=4
notebook>=4.3
qtpy
requests