Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-ipykernel for 
openSUSE:Factory checked in at 2021-07-02 13:26:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-ipykernel (Old)
 and      /work/SRC/openSUSE:Factory/.python-ipykernel.new.2625 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-ipykernel"

Fri Jul  2 13:26:29 2021 rev:14 rq:902823 version:5.5.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-ipykernel/python-ipykernel.changes        
2021-02-16 22:34:32.441501308 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-ipykernel.new.2625/python-ipykernel.changes  
    2021-07-02 13:26:43.057109493 +0200
@@ -1,0 +2,20 @@
+Fri Jun 25 12:08:31 UTC 2021 - Ben Greiner <[email protected]>
+
+- Update to version 5.5.5
+  * Keep preferring SelectorEventLoop on Windows. #669
+- Release 5.5.4
+  * Import configure_inline_support from matplotlib_inline if
+    available #654
+- Release 5.5.3
+  * Revert Backport of #605: Fix Handling of shell.should_run_async
+    #622
+- Release 5.5.2 and Release 5.5.1 were yanked from PyPI
+- Release 5.5.0
+  * kernelspec: ensure path is writable before writing kernel.json.
+    #593
+  * Add configure_inline_support and call it in the shell. #590
+  * Fix stop_on_error_timeout to now properly abort
+    execute_request's that fall within the timeout after an error.
+    #572
+
+-------------------------------------------------------------------

Old:
----
  ipykernel-5.4.3.tar.gz

New:
----
  ipykernel-5.5.5.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-ipykernel.spec ++++++
--- /var/tmp/diff_new_pack.NjBURs/_old  2021-07-02 13:26:43.625105086 +0200
+++ /var/tmp/diff_new_pack.NjBURs/_new  2021-07-02 13:26:43.625105086 +0200
@@ -19,7 +19,7 @@
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 %define         skip_python2 1
 Name:           python-ipykernel
-Version:        5.4.3
+Version:        5.5.5
 Release:        0
 Summary:        IPython Kernel for Jupyter
 License:        BSD-3-Clause

++++++ ipykernel-5.4.3.tar.gz -> ipykernel-5.5.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipykernel-5.4.3/CONTRIBUTING.md 
new/ipykernel-5.5.5/CONTRIBUTING.md
--- old/ipykernel-5.4.3/CONTRIBUTING.md 2021-01-11 17:29:53.000000000 +0100
+++ new/ipykernel-5.5.5/CONTRIBUTING.md 2021-03-29 17:39:43.000000000 +0200
@@ -2,7 +2,7 @@
 
 Welcome!
 
-For contributing tips, follow the [Jupyter Contributing 
Guide](https://jupyter.readthedocs.io/en/latest/contributor/content-contributor.html).
+For contributing tips, follow the [Jupyter Contributing 
Guide](https://jupyter.readthedocs.io/en/latest/contributing/content-contributor.html).
 Please make sure to follow the [Jupyter Code of 
Conduct](https://github.com/jupyter/governance/blob/master/conduct/code_of_conduct.md).
 
 ## Installing ipykernel for development
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipykernel-5.4.3/PKG-INFO new/ipykernel-5.5.5/PKG-INFO
--- old/ipykernel-5.4.3/PKG-INFO        2021-01-11 18:10:35.339956000 +0100
+++ new/ipykernel-5.5.5/PKG-INFO        2021-05-13 13:33:06.516668000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: ipykernel
-Version: 5.4.3
+Version: 5.5.5
 Summary: IPython Kernel for Jupyter
 Home-page: https://ipython.org
 Author: IPython Development Team
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipykernel-5.4.3/docs/changelog.rst 
new/ipykernel-5.5.5/docs/changelog.rst
--- old/ipykernel-5.4.3/docs/changelog.rst      2021-01-11 18:09:17.000000000 
+0100
+++ new/ipykernel-5.5.5/docs/changelog.rst      2021-05-13 13:32:28.000000000 
+0200
@@ -1,6 +1,38 @@
 Changes in IPython kernel
 =========================
 
+5.5
+---
+
+5.5.5
+-----
+- Keep preferring SelectorEventLoop on Windows. (:ghpull:`669`)
+
+5.5.4
+-----
+- Import ``configure_inline_support`` from ``matplotlib_inline`` if available 
(:ghpull:`654`)
+   
+5.5.3
+-----
+- Revert Backport of #605: Fix Handling of ``shell.should_run_async`` 
(:ghpull:`622`)
+
+5.5.2
+-----
+**Note:** This release was deleted from PyPI since it had breaking changes.
+
+- Changed default timeout to 0.0 seconds for stop_on_error_timeout. 
(:ghpull:`618`)
+
+5.5.1
+-----
+**Note:** This release was deleted from PyPI since it had breaking changes.
+
+- Fix Handling of ``shell.should_run_async``. (:ghpull:`605`)
+
+5.5.0
+-----
+- Kernelspec: ensure path is writable before writing ``kernel.json``. 
(:ghpull:`593`)
+- Add ``configure_inline_support`` and call it in the shell. (:ghpull:`590`)
+
 5.4
 ---
 
@@ -23,7 +55,7 @@
 
 - Add github actions, bail on asyncio patch for tornado 6.1.  (:ghpull:`564`)
 - Start testing on Python 3.9.  (:ghpull:`551`)
-- Fix stack levels for ipykernel's deprecation warnings and stop using some 
deprecated APIs.  (:ghpull:`547`) 
+- Fix stack levels for ipykernel's deprecation warnings and stop using some 
deprecated APIs.  (:ghpull:`547`)
 - Add env parameter to kernel installation  (:ghpull:`541`)
 - Fix stop_on_error_timeout blocking other messages in queue.  (:ghpull:`539`)
 - Remove most of the python 2 compat code.  (:ghpull:`537`)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipykernel-5.4.3/ipykernel/_version.py 
new/ipykernel-5.5.5/ipykernel/_version.py
--- old/ipykernel-5.4.3/ipykernel/_version.py   2021-01-11 18:09:50.000000000 
+0100
+++ new/ipykernel-5.5.5/ipykernel/_version.py   2021-05-13 13:32:49.000000000 
+0200
@@ -1,4 +1,4 @@
-version_info = (5, 4, 3)
+version_info = (5, 5, 5)
 __version__ = '.'.join(map(str, version_info[:3]))
 
 # pep440 is annoying, beta/alpha/rc should _not_ have dots or pip/setuptools
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipykernel-5.4.3/ipykernel/ipkernel.py 
new/ipykernel-5.5.5/ipykernel/ipkernel.py
--- old/ipykernel-5.4.3/ipykernel/ipkernel.py   2020-12-10 23:41:31.000000000 
+0100
+++ new/ipykernel-5.5.5/ipykernel/ipkernel.py   2021-05-05 18:46:26.000000000 
+0200
@@ -372,14 +372,14 @@
 
     def _experimental_do_complete(self, code, cursor_pos):
         """
-        Experimental completions from IPython, using Jedi. 
+        Experimental completions from IPython, using Jedi.
         """
         if cursor_pos is None:
             cursor_pos = len(code)
         with _provisionalcompleter():
             raw_completions = self.shell.Completer.completions(code, 
cursor_pos)
             completions = list(_rectify_completions(code, raw_completions))
-            
+
             comps = []
             for comp in completions:
                 comps.append(dict(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipykernel-5.4.3/ipykernel/kernelapp.py 
new/ipykernel-5.5.5/ipykernel/kernelapp.py
--- old/ipykernel-5.4.3/ipykernel/kernelapp.py  2020-12-10 23:41:31.000000000 
+0100
+++ new/ipykernel-5.5.5/ipykernel/kernelapp.py  2021-05-13 13:32:28.000000000 
+0200
@@ -516,14 +516,21 @@
         Pick the older SelectorEventLoopPolicy on Windows
         if the known-incompatible default policy is in use.
 
+        Support for Proactor via a background thread is available in tornado 
6.1,
+        but it is still preferable to run the Selector in the main thread
+        instead of the background.
+
         do this as early as possible to make it a low priority and overrideable
 
         ref: https://github.com/tornadoweb/tornado/issues/2608
 
-        FIXME: if/when tornado supports the defaults in asyncio,
-               remove and bump tornado requirement for py38
+        FIXME: if/when tornado supports the defaults in asyncio without 
threads,
+               remove and bump tornado requirement for py38.
+               Most likely, this will mean a new Python version
+               where asyncio.ProactorEventLoop supports add_reader and friends.
+
         """
-        if sys.platform.startswith("win") and sys.version_info >= (3, 8) and 
tornado.version_info < (6, 1):
+        if sys.platform.startswith("win") and sys.version_info >= (3, 8):
             import asyncio
             try:
                 from asyncio import (
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipykernel-5.4.3/ipykernel/kernelbase.py 
new/ipykernel-5.5.5/ipykernel/kernelbase.py
--- old/ipykernel-5.4.3/ipykernel/kernelbase.py 2021-01-11 17:29:53.000000000 
+0100
+++ new/ipykernel-5.5.5/ipykernel/kernelbase.py 2021-05-05 18:46:26.000000000 
+0200
@@ -40,7 +40,6 @@
 
 CONTROL_PRIORITY = 1
 SHELL_PRIORITY = 10
-ABORT_PRIORITY = 20
 
 
 class Kernel(SingletonConfigurable):
@@ -111,7 +110,7 @@
     _poll_interval = Float(0.01).tag(config=True)
 
     stop_on_error_timeout = Float(
-        0.1,
+        0.0,
         config=True,
         help="""time (in seconds) to wait for messages to arrive
         when aborting queued requests after an error.
@@ -182,10 +181,6 @@
         # Set the parent message for side effects.
         self.set_parent(idents, msg)
         self._publish_status('busy')
-        if self._aborting:
-            self._send_abort_reply(self.control_stream, msg, idents)
-            self._publish_status('idle')
-            return
 
         header = msg['header']
         msg_type = header['msg_type']
@@ -233,7 +228,10 @@
         self.set_parent(idents, msg)
         self._publish_status('busy')
 
-        if self._aborting:
+        msg_type = msg['header']['msg_type']
+
+        # Only abort execute requests
+        if self._aborting and msg_type == 'execute_request':
             self._send_abort_reply(stream, msg, idents)
             self._publish_status('idle')
             # flush to ensure reply is sent before
@@ -241,8 +239,6 @@
             stream.flush(zmq.POLLOUT)
             return
 
-        msg_type = msg['header']['msg_type']
-
         # Print some info about this message and leave a '--->' marker, so it's
         # easier to trace visually the message chain when debugging.  Each
         # handler prints its message at the end.
@@ -792,16 +788,11 @@
             stream.flush()
         self._aborting = True
 
-        self.schedule_dispatch(
-            ABORT_PRIORITY,
-            self._dispatch_abort,
-        )
+        def stop_aborting(f):
+            self.log.info("Finishing abort")
+            self._aborting = False
 
-    @gen.coroutine
-    def _dispatch_abort(self):
-        self.log.info("Finishing abort")
-        yield gen.sleep(self.stop_on_error_timeout)
-        self._aborting = False
+        self.io_loop.add_future(gen.sleep(self.stop_on_error_timeout), 
stop_aborting)
 
     def _send_abort_reply(self, stream, msg, idents):
         """Send a reply to an aborted request"""
@@ -817,7 +808,7 @@
         )
 
     def _no_raw_input(self):
-        """Raise StdinNotImplentedError if active frontend doesn't support
+        """Raise StdinNotImplementedError if active frontend doesn't support
         stdin."""
         raise StdinNotImplementedError("raw_input was called, but this "
                                        "frontend does not support stdin.")
@@ -827,7 +818,7 @@
 
         Raises
         ------
-        StdinNotImplentedError if active frontend doesn't support stdin.
+        StdinNotImplementedError if active frontend doesn't support stdin.
         """
         if not self._allow_stdin:
             raise StdinNotImplementedError(
@@ -848,7 +839,7 @@
 
         Raises
         ------
-        StdinNotImplentedError if active frontend doesn't support stdin.
+        StdinNotImplementedError if active frontend doesn't support stdin.
         """
         if not self._allow_stdin:
             raise StdinNotImplementedError(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipykernel-5.4.3/ipykernel/kernelspec.py 
new/ipykernel-5.5.5/ipykernel/kernelspec.py
--- old/ipykernel-5.4.3/ipykernel/kernelspec.py 2020-12-10 23:41:31.000000000 
+0100
+++ new/ipykernel-5.5.5/ipykernel/kernelspec.py 2021-05-05 18:46:26.000000000 
+0200
@@ -7,6 +7,7 @@
 import json
 import os
 import shutil
+import stat
 import sys
 import tempfile
 
@@ -70,6 +71,12 @@
     
     # stage resources
     shutil.copytree(RESOURCES, path)
+
+    # ensure path is writable
+    mask = os.stat(path).st_mode
+    if not mask & stat.S_IWUSR:
+        os.chmod(path, mask | stat.S_IWUSR)
+
     # write kernel.json
     kernel_dict = get_kernel_dict(extra_arguments)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipykernel-5.4.3/ipykernel/pylab/backend_inline.py 
new/ipykernel-5.5.5/ipykernel/pylab/backend_inline.py
--- old/ipykernel-5.4.3/ipykernel/pylab/backend_inline.py       2020-12-10 
23:41:31.000000000 +0100
+++ new/ipykernel-5.5.5/ipykernel/pylab/backend_inline.py       2021-05-05 
18:46:26.000000000 +0200
@@ -13,6 +13,7 @@
 from matplotlib._pylab_helpers import Gcf
 
 from IPython.core.getipython import get_ipython
+from IPython.core.pylabtools import select_figure_formats
 from IPython.display import display
 
 from .config import InlineBackend
@@ -150,13 +151,62 @@
 # See https://github.com/matplotlib/matplotlib/pull/1125
 FigureCanvas = FigureCanvasAgg
 
+
+def configure_inline_support(shell, backend):
+    """Configure an IPython shell object for matplotlib use.
+
+    Parameters
+    ----------
+    shell : InteractiveShell instance
+
+    backend : matplotlib backend
+    """
+    # If using our svg payload backend, register the post-execution
+    # function that will pick up the results for display.  This can only be
+    # done with access to the real shell object.
+
+    cfg = InlineBackend.instance(parent=shell)
+    cfg.shell = shell
+    if cfg not in shell.configurables:
+        shell.configurables.append(cfg)
+
+    if backend == 'module://ipykernel.pylab.backend_inline':
+        shell.events.register('post_execute', flush_figures)
+
+        # Save rcParams that will be overwrittern
+        shell._saved_rcParams = {}
+        for k in cfg.rc:
+            shell._saved_rcParams[k] = matplotlib.rcParams[k]
+        # load inline_rc
+        matplotlib.rcParams.update(cfg.rc)
+        new_backend_name = "inline"
+    else:
+        try:
+            shell.events.unregister('post_execute', flush_figures)
+        except ValueError:
+            pass
+        if hasattr(shell, '_saved_rcParams'):
+            matplotlib.rcParams.update(shell._saved_rcParams)
+            del shell._saved_rcParams
+        new_backend_name = "other"
+
+    # only enable the formats once -> don't change the enabled formats (which 
the user may
+    # has changed) when getting another "%matplotlib inline" call.
+    # See https://github.com/ipython/ipykernel/issues/29
+    cur_backend = getattr(configure_inline_support, "current_backend", "unset")
+    if new_backend_name != cur_backend:
+        # Setup the default figure format
+        select_figure_formats(shell, cfg.figure_formats, 
**cfg.print_figure_kwargs)
+        configure_inline_support.current_backend = new_backend_name
+
+
 def _enable_matplotlib_integration():
     """Enable extra IPython matplotlib integration when we are loaded as the 
matplotlib backend."""
     from matplotlib import get_backend
     ip = get_ipython()
     backend = get_backend()
     if ip and backend == 'module://%s' % __name__:
-        from IPython.core.pylabtools import configure_inline_support, 
activate_matplotlib
+        from IPython.core.pylabtools import activate_matplotlib
         try:
             activate_matplotlib(backend)
             configure_inline_support(ip, backend)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipykernel-5.4.3/ipykernel/tests/test_message_spec.py 
new/ipykernel-5.5.5/ipykernel/tests/test_message_spec.py
--- old/ipykernel-5.4.3/ipykernel/tests/test_message_spec.py    2021-01-11 
18:09:17.000000000 +0100
+++ new/ipykernel-5.5.5/ipykernel/tests/test_message_spec.py    2021-05-05 
18:46:26.000000000 +0200
@@ -115,6 +115,8 @@
             ExecuteReplyOkay().check(d)
         elif d['status'] == 'error':
             ExecuteReplyError().check(d)
+        elif d['status'] == 'aborted':
+            ExecuteReplyAborted().check(d)
 
 
 class ExecuteReplyOkay(Reply):
@@ -123,11 +125,16 @@
 
 
 class ExecuteReplyError(Reply):
+    status = Enum(('error',))
     ename = Unicode()
     evalue = Unicode()
     traceback = List(Unicode())
 
 
+class ExecuteReplyAborted(Reply):
+    status = Enum(('aborted',))
+
+
 class InspectReply(Reply, MimeBundle):
     found = Bool()
 
@@ -349,6 +356,30 @@
     assert reply['content']['status'] == 'ok'
 
 
+def test_non_execute_stop_on_error():
+    """test that non-execute_request's are not aborted after an error"""
+    flush_channels()
+
+    fail = '\n'.join([
+        # sleep to ensure subsequent message is waiting in the queue to be 
aborted
+        'import time',
+        'time.sleep(0.5)',
+        'raise ValueError',
+    ])
+    KC.execute(code=fail)
+    KC.kernel_info()
+    KC.comm_info()
+    KC.inspect(code="print")
+    reply = KC.get_shell_msg(timeout=TIMEOUT) # execute
+    assert reply['content']['status'] == 'error'
+    reply = KC.get_shell_msg(timeout=TIMEOUT) # kernel_info
+    assert reply['content']['status'] == 'ok'
+    reply = KC.get_shell_msg(timeout=TIMEOUT) # comm_info
+    assert reply['content']['status'] == 'ok'
+    reply = KC.get_shell_msg(timeout=TIMEOUT) # inspect
+    assert reply['content']['status'] == 'ok'
+
+
 def test_user_expressions():
     flush_channels()
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipykernel-5.4.3/ipykernel/zmqshell.py 
new/ipykernel-5.5.5/ipykernel/zmqshell.py
--- old/ipykernel-5.4.3/ipykernel/zmqshell.py   2020-12-10 23:41:31.000000000 
+0100
+++ new/ipykernel-5.5.5/ipykernel/zmqshell.py   2021-05-05 18:46:33.000000000 
+0200
@@ -597,6 +597,18 @@
         self.register_magics(KernelMagics)
         self.magics_manager.register_alias('ed', 'edit')
 
+    def enable_matplotlib(self, gui=None):
+        gui, backend = super(ZMQInteractiveShell, self).enable_matplotlib(gui)
+
+        try:
+            from matplotlib_inline.backend_inline import 
configure_inline_support
+        except ImportError:
+            from ipykernel.pylab.backend_inline import configure_inline_support
+
+        configure_inline_support(self, backend)
+
+        return gui, backend
+
     def init_virtualenv(self):
         # Overridden not to do virtualenv detection, because it's probably
         # not appropriate in a kernel. To use a kernel in a virtualenv, install
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ipykernel-5.4.3/ipykernel.egg-info/PKG-INFO 
new/ipykernel-5.5.5/ipykernel.egg-info/PKG-INFO
--- old/ipykernel-5.4.3/ipykernel.egg-info/PKG-INFO     2021-01-11 
18:10:35.000000000 +0100
+++ new/ipykernel-5.5.5/ipykernel.egg-info/PKG-INFO     2021-05-13 
13:33:06.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: ipykernel
-Version: 5.4.3
+Version: 5.5.5
 Summary: IPython Kernel for Jupyter
 Home-page: https://ipython.org
 Author: IPython Development Team

Reply via email to