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 2023-08-07 15:28:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-ipykernel (Old)
and /work/SRC/openSUSE:Factory/.python-ipykernel.new.22712 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-ipykernel"
Mon Aug 7 15:28:56 2023 rev:39 rq:1102582 version:6.25.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-ipykernel/python-ipykernel.changes
2023-07-04 15:22:32.542264197 +0200
+++
/work/SRC/openSUSE:Factory/.python-ipykernel.new.22712/python-ipykernel.changes
2023-08-07 15:29:01.448289243 +0200
@@ -1,0 +2,20 @@
+Sat Aug 5 16:08:00 UTC 2023 - Arun Persaud <[email protected]>
+
+- update to version 6.25.0:
+ * Enhancements made
+ - feat: let display hook handle clear_output #1135
+ (@maartenbreddels)
+ * Bugs fixed
+ - Merge connection info into existing connection file if it
+ already exists #1133 (@jasongrout)
+ * Maintenance and upkeep improvements
+ - Clean up lint #1134 (@blink1073)
+
+- change from version 6.24.0:
+ * New features added
+ - Let get_parent decide the channel to get parent header
+ #1128 (@dby-tmwctw)
+ * Bugs fixed
+ - Bugfix: binary stdout/stderr handling #1129 (@arieleiz)
+
+-------------------------------------------------------------------
Old:
----
ipykernel-6.23.3.tar.gz
New:
----
ipykernel-6.25.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-ipykernel.spec ++++++
--- /var/tmp/diff_new_pack.dlT8ea/_old 2023-08-07 15:29:02.160293664 +0200
+++ /var/tmp/diff_new_pack.dlT8ea/_new 2023-08-07 15:29:02.164293689 +0200
@@ -18,7 +18,7 @@
%{?sle15_python_module_pythons}
Name: python-ipykernel
-Version: 6.23.3
+Version: 6.25.0
Release: 0
Summary: IPython Kernel for Jupyter
License: BSD-3-Clause
++++++ ipykernel-6.23.3.tar.gz -> ipykernel-6.25.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.23.3/.github/workflows/ci.yml
new/ipykernel-6.25.0/.github/workflows/ci.yml
--- old/ipykernel-6.23.3/.github/workflows/ci.yml 2020-02-02
01:00:00.000000000 +0100
+++ new/ipykernel-6.25.0/.github/workflows/ci.yml 2020-02-02
01:00:00.000000000 +0100
@@ -137,7 +137,7 @@
pip freeze
- name: Run the tests
- timeout-minutes: 10
+ timeout-minutes: 15
run: pytest -W default -vv || pytest --vv -W default --lf
test_miniumum_versions:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.23.3/.pre-commit-config.yaml
new/ipykernel-6.25.0/.pre-commit-config.yaml
--- old/ipykernel-6.23.3/.pre-commit-config.yaml 2020-02-02
01:00:00.000000000 +0100
+++ new/ipykernel-6.25.0/.pre-commit-config.yaml 2020-02-02
01:00:00.000000000 +0100
@@ -21,7 +21,7 @@
- id: trailing-whitespace
- repo: https://github.com/python-jsonschema/check-jsonschema
- rev: 0.23.1
+ rev: 0.23.2
hooks:
- id: check-github-workflows
@@ -35,8 +35,8 @@
hooks:
- id: black
- - repo: https://github.com/charliermarsh/ruff-pre-commit
- rev: v0.0.270
+ - repo: https://github.com/astral-sh/ruff-pre-commit
+ rev: v0.0.278
hooks:
- id: ruff
args: ["--fix"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.23.3/CHANGELOG.md
new/ipykernel-6.25.0/CHANGELOG.md
--- old/ipykernel-6.23.3/CHANGELOG.md 2020-02-02 01:00:00.000000000 +0100
+++ new/ipykernel-6.25.0/CHANGELOG.md 2020-02-02 01:00:00.000000000 +0100
@@ -2,6 +2,48 @@
<!-- <START NEW CHANGELOG ENTRY> -->
+## 6.25.0
+
+([Full
Changelog](https://github.com/ipython/ipykernel/compare/v6.24.0...09c3c359addf60e26078207990ad2ca932cf2613))
+
+### Enhancements made
+
+- feat: let display hook handle clear_output
[#1135](https://github.com/ipython/ipykernel/pull/1135)
([@maartenbreddels](https://github.com/maartenbreddels))
+
+### Bugs fixed
+
+- Merge connection info into existing connection file if it already exists
[#1133](https://github.com/ipython/ipykernel/pull/1133)
([@jasongrout](https://github.com/jasongrout))
+
+### Maintenance and upkeep improvements
+
+- Clean up lint [#1134](https://github.com/ipython/ipykernel/pull/1134)
([@blink1073](https://github.com/blink1073))
+
+### Contributors to this release
+
+([GitHub contributors page for this
release](https://github.com/ipython/ipykernel/graphs/contributors?from=2023-07-03&to=2023-07-25&type=c))
+
+[@blink1073](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Ablink1073+updated%3A2023-07-03..2023-07-25&type=Issues)
|
[@fecet](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Afecet+updated%3A2023-07-03..2023-07-25&type=Issues)
|
[@jasongrout](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Ajasongrout+updated%3A2023-07-03..2023-07-25&type=Issues)
|
[@maartenbreddels](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Amaartenbreddels+updated%3A2023-07-03..2023-07-25&type=Issues)
|
[@pre-commit-ci](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Apre-commit-ci+updated%3A2023-07-03..2023-07-25&type=Issues)
+
+<!-- <END NEW CHANGELOG ENTRY> -->
+
+## 6.24.0
+
+([Full
Changelog](https://github.com/ipython/ipykernel/compare/v6.23.3...0c1db099a32c4cb28bfb4b3508bb808d8b4092e7))
+
+### New features added
+
+- Let get_parent decide the channel to get parent header
[#1128](https://github.com/ipython/ipykernel/pull/1128)
([@dby-tmwctw](https://github.com/dby-tmwctw))
+
+### Bugs fixed
+
+- Bugfix: binary stdout/stderr handling
[#1129](https://github.com/ipython/ipykernel/pull/1129)
([@arieleiz](https://github.com/arieleiz))
+
+### Contributors to this release
+
+([GitHub contributors page for this
release](https://github.com/ipython/ipykernel/graphs/contributors?from=2023-06-23&to=2023-07-03&type=c))
+
+[@arieleiz](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aarieleiz+updated%3A2023-06-23..2023-07-03&type=Issues)
|
[@dby-tmwctw](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Adby-tmwctw+updated%3A2023-06-23..2023-07-03&type=Issues)
|
[@minrk](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aminrk+updated%3A2023-06-23..2023-07-03&type=Issues)
+
## 6.23.3
([Full
Changelog](https://github.com/ipython/ipykernel/compare/v6.23.2...ea3e6479aca70f87282ec0b60412f2cfba59eb35))
@@ -16,8 +58,6 @@
[@blink1073](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Ablink1073+updated%3A2023-06-12..2023-06-23&type=Issues)
|
[@fecet](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Afecet+updated%3A2023-06-12..2023-06-23&type=Issues)
-<!-- <END NEW CHANGELOG ENTRY> -->
-
## 6.23.2
([Full
Changelog](https://github.com/ipython/ipykernel/compare/v6.23.1...112ca66da0ee8156b983094b2c8e2926ed63cfcb))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.23.3/PKG-INFO
new/ipykernel-6.25.0/PKG-INFO
--- old/ipykernel-6.23.3/PKG-INFO 2020-02-02 01:00:00.000000000 +0100
+++ new/ipykernel-6.25.0/PKG-INFO 2020-02-02 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: ipykernel
-Version: 6.23.3
+Version: 6.25.0
Summary: IPython Kernel for Jupyter
Project-URL: Homepage, https://ipython.org
Author-email: IPython Development Team <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.23.3/ipykernel/_version.py
new/ipykernel-6.25.0/ipykernel/_version.py
--- old/ipykernel-6.23.3/ipykernel/_version.py 2020-02-02 01:00:00.000000000
+0100
+++ new/ipykernel-6.25.0/ipykernel/_version.py 2020-02-02 01:00:00.000000000
+0100
@@ -5,7 +5,7 @@
from typing import List
# Version string must appear intact for hatch versioning
-__version__ = "6.23.3"
+__version__ = "6.25.0"
# Build up version_info tuple for backwards compatibility
pattern = r"(?P<major>\d+).(?P<minor>\d+).(?P<patch>\d+)(?P<rest>.*)"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.23.3/ipykernel/comm/comm.py
new/ipykernel-6.25.0/ipykernel/comm/comm.py
--- old/ipykernel-6.23.3/ipykernel/comm/comm.py 2020-02-02 01:00:00.000000000
+0100
+++ new/ipykernel-6.25.0/ipykernel/comm/comm.py 2020-02-02 01:00:00.000000000
+0100
@@ -3,7 +3,6 @@
# Copyright (c) IPython Development Team.
# Distributed under the terms of the Modified BSD License.
-import threading
import uuid
from typing import Optional
from warnings import warn
@@ -12,7 +11,6 @@
import traitlets.config
from traitlets import Bool, Bytes, Instance, Unicode, default
-from ipykernel.control import CONTROL_THREAD_NAME
from ipykernel.jsonutil import json_clean
from ipykernel.kernelbase import Kernel
@@ -32,11 +30,6 @@
metadata = {} if metadata is None else metadata
content = json_clean(dict(data=data, comm_id=self.comm_id, **keys))
- if threading.current_thread().name == CONTROL_THREAD_NAME:
- channel_from_which_to_get_parent_header = "control"
- else:
- channel_from_which_to_get_parent_header = "shell"
-
if self.kernel is None:
self.kernel = Kernel.instance()
@@ -45,7 +38,7 @@
msg_type,
content,
metadata=json_clean(metadata),
-
parent=self.kernel.get_parent(channel_from_which_to_get_parent_header),
+ parent=self.kernel.get_parent(),
ident=self.topic,
buffers=buffers,
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.23.3/ipykernel/debugger.py
new/ipykernel-6.25.0/ipykernel/debugger.py
--- old/ipykernel-6.23.3/ipykernel/debugger.py 2020-02-02 01:00:00.000000000
+0100
+++ new/ipykernel-6.25.0/ipykernel/debugger.py 2020-02-02 01:00:00.000000000
+0100
@@ -657,7 +657,7 @@
}
)
if reply["success"]:
- repr_data, repr_metadata = eval(reply["body"]["result"], {},
{})
+ repr_data, repr_metadata = eval(reply["body"]["result"], {},
{}) # noqa[S307]
body = {
"data": repr_data,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.23.3/ipykernel/iostream.py
new/ipykernel-6.25.0/ipykernel/iostream.py
--- old/ipykernel-6.23.3/ipykernel/iostream.py 2020-02-02 01:00:00.000000000
+0100
+++ new/ipykernel-6.25.0/ipykernel/iostream.py 2020-02-02 01:00:00.000000000
+0100
@@ -29,6 +29,8 @@
MASTER = 0
CHILD = 1
+PIPE_BUFFER_SIZE = 1000
+
# -----------------------------------------------------------------------------
# IO classes
# -----------------------------------------------------------------------------
@@ -367,11 +369,11 @@
"""
try:
- bts = os.read(self._fid, 1000)
+ bts = os.read(self._fid, PIPE_BUFFER_SIZE)
while bts and self._should_watch:
- self.write(bts.decode())
+ self.write(bts.decode(errors='replace'))
os.write(self._original_stdstream_copy, bts)
- bts = os.read(self._fid, 1000)
+ bts = os.read(self._fid, PIPE_BUFFER_SIZE)
except Exception:
self._exc = sys.exc_info()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.23.3/ipykernel/ipkernel.py
new/ipykernel-6.25.0/ipykernel/ipkernel.py
--- old/ipykernel-6.23.3/ipykernel/ipkernel.py 2020-02-02 01:00:00.000000000
+0100
+++ new/ipykernel-6.25.0/ipykernel/ipkernel.py 2020-02-02 01:00:00.000000000
+0100
@@ -675,7 +675,6 @@
"error",
reply_content,
ident=self._topic("error"),
- channel="shell",
)
self.log.info("Exception in apply request:\n%s",
"\n".join(reply_content["traceback"]))
result_buf = []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.23.3/ipykernel/kernelapp.py
new/ipykernel-6.25.0/ipykernel/kernelapp.py
--- old/ipykernel-6.23.3/ipykernel/kernelapp.py 2020-02-02 01:00:00.000000000
+0100
+++ new/ipykernel-6.25.0/ipykernel/kernelapp.py 2020-02-02 01:00:00.000000000
+0100
@@ -24,7 +24,6 @@
)
from IPython.core.profiledir import ProfileDir
from IPython.core.shellapp import InteractiveShellApp, shell_aliases,
shell_flags
-from jupyter_client import write_connection_file
from jupyter_client.connect import ConnectionFileMixin
from jupyter_client.session import Session, session_aliases, session_flags
from jupyter_core.paths import jupyter_runtime_dir
@@ -44,10 +43,11 @@
from traitlets.utils.importstring import import_item
from zmq.eventloop.zmqstream import ZMQStream
-from .control import ControlThread
-from .heartbeat import Heartbeat
+from .connect import get_connection_info, write_connection_file
# local imports
+from .control import ControlThread
+from .heartbeat import Heartbeat
from .iostream import IOPubThread
from .ipkernel import IPythonKernel
from .parentpoller import ParentPollerUnix, ParentPollerWindows
@@ -260,12 +260,7 @@
def write_connection_file(self):
"""write connection info to JSON file"""
cf = self.abs_connection_file
- if os.path.exists(cf):
- self.log.debug("Connection file %s already exists", cf)
- return
- self.log.debug("Writing connection file: %s", cf)
- write_connection_file(
- cf,
+ connection_info = dict(
ip=self.ip,
key=self.session.key,
transport=self.transport,
@@ -275,6 +270,19 @@
iopub_port=self.iopub_port,
control_port=self.control_port,
)
+ if os.path.exists(cf):
+ # If the file exists, merge our info into it. For example, if the
+ # original file had port number 0, we update with the actual port
+ # used.
+ existing_connection_info = get_connection_info(cf, unpack=True)
+ connection_info = dict(existing_connection_info, **connection_info)
+ if connection_info == existing_connection_info:
+ self.log.debug("Connection file %s with current information
already exists", cf)
+ return
+
+ self.log.debug("Writing connection file: %s", cf)
+
+ write_connection_file(cf, **connection_info)
def cleanup_connection_file(self):
"""Clean up our connection file."""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.23.3/ipykernel/kernelbase.py
new/ipykernel-6.25.0/ipykernel/kernelbase.py
--- old/ipykernel-6.23.3/ipykernel/kernelbase.py 2020-02-02
01:00:00.000000000 +0100
+++ new/ipykernel-6.25.0/ipykernel/kernelbase.py 2020-02-02
01:00:00.000000000 +0100
@@ -11,6 +11,7 @@
import os
import socket
import sys
+import threading
import time
import typing as t
import uuid
@@ -19,6 +20,8 @@
from functools import partial
from signal import SIGINT, SIGTERM, Signals, default_int_handler, signal
+from .control import CONTROL_THREAD_NAME
+
if sys.platform != "win32":
from signal import SIGKILL
else:
@@ -187,7 +190,7 @@
DeprecationWarning,
stacklevel=2,
)
- return self.get_parent(channel="shell")
+ return self.get_parent()
# Time to sleep after flushing the stdout/err buffers in each execute
# cycle. While this introduces a hard limit on the minimal latency of the
@@ -598,7 +601,7 @@
self.iopub_socket,
"debug_event",
event,
- parent=self.get_parent("control"),
+ parent=self.get_parent(),
ident=self._topic("debug_event"),
)
@@ -614,7 +617,7 @@
self._parent_ident[channel] = ident
self._parents[channel] = parent
- def get_parent(self, channel="shell"):
+ def get_parent(self, channel=None):
"""Get the parent request associated with a channel.
.. versionadded:: 6
@@ -629,6 +632,14 @@
message : dict
the parent message for the most recent request on the channel.
"""
+
+ if channel is None:
+ # If a channel is not specified, get information from current
thread
+ if threading.current_thread().name == CONTROL_THREAD_NAME:
+ channel = "control"
+ else:
+ channel = "shell"
+
return self._parents.get(channel, {})
def send_response(
@@ -641,7 +652,7 @@
track=False,
header=None,
metadata=None,
- channel="shell",
+ channel=None,
):
"""Send a response to the message we're currently processing.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.23.3/ipykernel/pickleutil.py
new/ipykernel-6.25.0/ipykernel/pickleutil.py
--- old/ipykernel-6.23.3/ipykernel/pickleutil.py 2020-02-02
01:00:00.000000000 +0100
+++ new/ipykernel-6.25.0/ipykernel/pickleutil.py 2020-02-02
01:00:00.000000000 +0100
@@ -179,7 +179,7 @@
if g is None:
g = {}
- return eval(self.name, g)
+ return eval(self.name, g) # noqa[S307]
class CannedCell(CannedObject):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ipykernel-6.23.3/ipykernel/tests/test_ipkernel_direct.py
new/ipykernel-6.25.0/ipykernel/tests/test_ipkernel_direct.py
--- old/ipykernel-6.23.3/ipykernel/tests/test_ipkernel_direct.py
2020-02-02 01:00:00.000000000 +0100
+++ new/ipykernel-6.25.0/ipykernel/tests/test_ipkernel_direct.py
2020-02-02 01:00:00.000000000 +0100
@@ -20,7 +20,7 @@
__dict__ = {}
-async def test_properities(ipkernel: IPythonKernel) -> None:
+async def test_properties(ipkernel: IPythonKernel) -> None:
ipkernel.user_module = user_mod()
ipkernel.user_ns = {}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.23.3/ipykernel/tests/test_kernelapp.py
new/ipykernel-6.25.0/ipykernel/tests/test_kernelapp.py
--- old/ipykernel-6.23.3/ipykernel/tests/test_kernelapp.py 2020-02-02
01:00:00.000000000 +0100
+++ new/ipykernel-6.25.0/ipykernel/tests/test_kernelapp.py 2020-02-02
01:00:00.000000000 +0100
@@ -1,13 +1,17 @@
+import json
import os
import threading
import time
from unittest.mock import patch
import pytest
+from jupyter_core.paths import secure_write
+from traitlets.config.loader import Config
from ipykernel.kernelapp import IPKernelApp
from .conftest import MockKernel
+from .utils import TemporaryWorkingDirectory
try:
import trio
@@ -47,6 +51,73 @@
app.close()
[email protected](os.name == "nt", reason="permission errors on windows")
+def test_merge_connection_file():
+ cfg = Config()
+ with TemporaryWorkingDirectory() as d:
+ cfg.ProfileDir.location = d
+ cf = os.path.join(d, "kernel.json")
+ initial_connection_info = {
+ "ip": "*",
+ "transport": "tcp",
+ "shell_port": 0,
+ "hb_port": 0,
+ "iopub_port": 0,
+ "stdin_port": 0,
+ "control_port": 53555,
+ "key": "abc123",
+ "signature_scheme": "hmac-sha256",
+ "kernel_name": "My Kernel",
+ }
+ # We cannot use connect.write_connection_file since
+ # it replaces port number 0 with a random port
+ # and we want IPKernelApp to do that replacement.
+ with secure_write(cf) as f:
+ json.dump(initial_connection_info, f)
+ assert os.path.exists(cf)
+
+ app = IPKernelApp(config=cfg, connection_file=cf)
+
+ # Calling app.initialize() does not work in the test, so we call the
relevant functions that initialize() calls
+ # We must pass in an empty argv, otherwise the default is to try to
parse the test runner's argv
+ super(IPKernelApp, app).initialize(argv=[""])
+ app.init_connection_file()
+ app.init_sockets()
+ app.init_heartbeat()
+ app.write_connection_file()
+
+ # Initialize should have merged the actual connection info
+ # with the connection info in the file
+ assert cf == app.abs_connection_file
+ assert os.path.exists(cf)
+
+ with open(cf) as f:
+ new_connection_info = json.load(f)
+
+ # ports originally set as 0 have been replaced
+ for port in ("shell", "hb", "iopub", "stdin"):
+ key = f"{port}_port"
+ # We initially had the port as 0
+ assert initial_connection_info[key] == 0
+ # the port is not 0 now
+ assert new_connection_info[key] > 0
+ # the port matches the port the kernel actually used
+ assert new_connection_info[key] == getattr(app, key), f"{key}"
+ del new_connection_info[key]
+ del initial_connection_info[key]
+
+ # The wildcard ip address was also replaced
+ assert new_connection_info["ip"] != "*"
+ del new_connection_info["ip"]
+ del initial_connection_info["ip"]
+
+ # everything else in the connection file is the same
+ assert initial_connection_info == new_connection_info
+
+ app.close()
+ os.remove(cf)
+
+
@pytest.mark.skipif(trio is None, reason="requires trio")
def test_trio_loop():
app = IPKernelApp(trio_loop=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.23.3/ipykernel/zmqshell.py
new/ipykernel-6.25.0/ipykernel/zmqshell.py
--- old/ipykernel-6.23.3/ipykernel/zmqshell.py 2020-02-02 01:00:00.000000000
+0100
+++ new/ipykernel-6.25.0/ipykernel/zmqshell.py 2020-02-02 01:00:00.000000000
+0100
@@ -144,11 +144,17 @@
"""
content = dict(wait=wait)
self._flush_streams()
+ msg = self.session.msg("clear_output", json_clean(content),
parent=self.parent_header)
+
+ # see publish() for details on how this works
+ for hook in self._hooks:
+ msg = hook(msg)
+ if msg is None:
+ return
+
self.session.send(
self.pub_socket,
- "clear_output",
- content,
- parent=self.parent_header,
+ msg,
ident=self.topic,
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.23.3/ipykernel_launcher.py
new/ipykernel-6.25.0/ipykernel_launcher.py
--- old/ipykernel-6.23.3/ipykernel_launcher.py 2020-02-02 01:00:00.000000000
+0100
+++ new/ipykernel-6.25.0/ipykernel_launcher.py 2020-02-02 01:00:00.000000000
+0100
@@ -9,7 +9,7 @@
if __name__ == "__main__":
# Remove the CWD from sys.path while we load stuff.
# This is added back by InteractiveShellApp.init_path()
- if sys.path[0] == "": # noqa
+ if sys.path[0] == "":
del sys.path[0]
from ipykernel import kernelapp as app
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ipykernel-6.23.3/pyproject.toml
new/ipykernel-6.25.0/pyproject.toml
--- old/ipykernel-6.23.3/pyproject.toml 2020-02-02 01:00:00.000000000 +0100
+++ new/ipykernel-6.25.0/pyproject.toml 2020-02-02 01:00:00.000000000 +0100
@@ -117,7 +117,7 @@
test = "mypy --install-types --non-interactive {args:.}"
[tool.hatch.envs.lint]
-dependencies = ["black==23.3.0", "mdformat>0.7", "ruff==0.0.270"]
+dependencies = ["black==23.3.0", "mdformat>0.7", "ruff==0.0.278"]
detached = true
[tool.hatch.envs.lint.scripts]
style = [
@@ -278,6 +278,8 @@
"SIM105",
# S110 `try`-`except`-`pass` detected
"S110",
+ # RUF012 Mutable class attributes should be annotated with `typing.ClassVar`
+ "RUF012",
]
unfixable = [
# Don't touch print statements