Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-nbclient for openSUSE:Factory
checked in at 2026-02-23 16:12:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-nbclient (Old)
and /work/SRC/openSUSE:Factory/.python-nbclient.new.1977 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-nbclient"
Mon Feb 23 16:12:53 2026 rev:37 rq:1334431 version:0.10.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-nbclient/python-nbclient.changes
2025-12-15 12:04:41.103198228 +0100
+++
/work/SRC/openSUSE:Factory/.python-nbclient.new.1977/python-nbclient.changes
2026-02-23 16:14:52.431084136 +0100
@@ -1,0 +2,17 @@
+Mon Feb 23 09:18:16 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 0.10.4:
+ * Allow `display_id` to be `None` #338 (@davidbrochart,
+ @YannickJadoul, @slayoo)
+
+-------------------------------------------------------------------
+Sat Dec 20 17:30:30 UTC 2025 - Ben Greiner <[email protected]>
+
+- Update to 0.10.3
+ * Drop Python 3.9, test 3.14 and pypy-3.11 #337 (@davidbrochart)
+ * correct execution count in test for ipython 9.8 and above #335
+ (@drorspei, @davidbrochart)
+ * Update contribution with pytest instructions, remove tox. #331
+ (@dgrahn, @davidbrochart)
+
+-------------------------------------------------------------------
Old:
----
nbclient-0.10.2.tar.gz
New:
----
nbclient-0.10.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-nbclient.spec ++++++
--- /var/tmp/diff_new_pack.4Hafg5/_old 2026-02-23 16:14:52.939105082 +0100
+++ /var/tmp/diff_new_pack.4Hafg5/_new 2026-02-23 16:14:52.939105082 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-nbclient
#
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -34,7 +34,7 @@
%{?sle15_python_module_pythons}
Name: python-nbclient%{psuffix}
-Version: 0.10.2
+Version: 0.10.4
Release: 0
Summary: A client library for executing notebooks
License: BSD-3-Clause
@@ -46,7 +46,7 @@
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-jupyter-client >= 6.1.12
-Requires: python-nbformat >= 5.1
+Requires: python-nbformat >= 5.1.3
Requires: python-traitlets >= 5.4
Requires: ((python-jupyter-core >= 4.12 with python-jupyter-core < 5) or
python-jupyter-core >= 5.1)
BuildArch: noarch
@@ -64,8 +64,8 @@
BuildRequires: %{python_module ipywidgets}
BuildRequires: %{python_module nbclient = %{version}}
BuildRequires: %{python_module nbconvert >= 7}
-BuildRequires: %{python_module pytest >= 7}
-BuildRequires: %{python_module pytest-asyncio}
+BuildRequires: %{python_module pytest >= 9.0.1}
+BuildRequires: %{python_module pytest-asyncio >= 1.3.0}
BuildRequires: %{python_module testpath}
BuildRequires: %{python_module xmltodict}
%endif
++++++ nbclient-0.10.2.tar.gz -> nbclient-0.10.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nbclient-0.10.2/PKG-INFO new/nbclient-0.10.4/PKG-INFO
--- old/nbclient-0.10.2/PKG-INFO 2020-02-02 01:00:00.000000000 +0100
+++ new/nbclient-0.10.4/PKG-INFO 2020-02-02 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: nbclient
-Version: 0.10.2
+Version: 0.10.4
Summary: A client library for executing notebooks. Formerly nbconvert's
ExecutePreprocessor.
Project-URL: Documentation, https://nbclient.readthedocs.io
Project-URL: Funding, https://numfocus.org/
@@ -46,15 +46,15 @@
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
-Requires-Python: >=3.9.0
+Classifier: Programming Language :: Python :: 3.14
+Requires-Python: >=3.10.0
Requires-Dist: jupyter-client>=6.1.12
Requires-Dist: jupyter-core!=5.0.*,>=4.12
-Requires-Dist: nbformat>=5.1
+Requires-Dist: nbformat>=5.1.3
Requires-Dist: traitlets>=5.4
Provides-Extra: dev
Requires-Dist: pre-commit; extra == 'dev'
@@ -68,9 +68,9 @@
Requires-Dist: moto; extra == 'docs'
Requires-Dist: myst-parser; extra == 'docs'
Requires-Dist: nbconvert>=7.1.0; extra == 'docs'
-Requires-Dist: pytest-asyncio; extra == 'docs'
+Requires-Dist: pytest-asyncio>=1.3.0; extra == 'docs'
Requires-Dist: pytest-cov>=4.0; extra == 'docs'
-Requires-Dist: pytest<8,>=7.0; extra == 'docs'
+Requires-Dist: pytest<10,>=9.0.1; extra == 'docs'
Requires-Dist: sphinx-book-theme; extra == 'docs'
Requires-Dist: sphinx>=1.7; extra == 'docs'
Requires-Dist: sphinxcontrib-spelling; extra == 'docs'
@@ -82,9 +82,9 @@
Requires-Dist: ipython; extra == 'test'
Requires-Dist: ipywidgets; extra == 'test'
Requires-Dist: nbconvert>=7.1.0; extra == 'test'
-Requires-Dist: pytest-asyncio; extra == 'test'
+Requires-Dist: pytest-asyncio>=1.3.0; extra == 'test'
Requires-Dist: pytest-cov>=4.0; extra == 'test'
-Requires-Dist: pytest<8,>=7.0; extra == 'test'
+Requires-Dist: pytest<10,>=9.0.1; extra == 'test'
Requires-Dist: testpath; extra == 'test'
Requires-Dist: xmltodict; extra == 'test'
Description-Content-Type: text/markdown
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nbclient-0.10.2/nbclient/_version.py
new/nbclient-0.10.4/nbclient/_version.py
--- old/nbclient-0.10.2/nbclient/_version.py 2020-02-02 01:00:00.000000000
+0100
+++ new/nbclient-0.10.4/nbclient/_version.py 2020-02-02 01:00:00.000000000
+0100
@@ -3,7 +3,7 @@
import re
-__version__ = "0.10.2"
+__version__ = "0.10.4"
# 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/nbclient-0.10.2/nbclient/client.py
new/nbclient-0.10.4/nbclient/client.py
--- old/nbclient-0.10.2/nbclient/client.py 2020-02-02 01:00:00.000000000
+0100
+++ new/nbclient-0.10.4/nbclient/client.py 2020-02-02 01:00:00.000000000
+0100
@@ -476,7 +476,7 @@
self.widget_buffers: dict[str, dict[tuple[str, ...], dict[str, str]]]
= {}
# maps to list of hooks, where the last is used, this is used
# to support nested use of output widgets.
- self.output_hook_stack: t.Any = collections.defaultdict(list)
+ self.output_hook_stack: dict[str, list[OutputWidget]] =
collections.defaultdict(list)
# our front-end mimicking Output widgets
self.comm_objects: dict[str, t.Any] = {}
@@ -776,7 +776,7 @@
while True:
try:
if error_on_timeout_execute_reply:
- msg = error_on_timeout_execute_reply #
type:ignore[unreachable]
+ msg = error_on_timeout_execute_reply
msg["parent_header"] = {"msg_id": msg_id}
else:
msg = await
ensure_async(self.kc.shell_channel.get_msg(timeout=new_timeout))
@@ -1136,7 +1136,11 @@
return None
def output(
- self, outs: list[NotebookNode], msg: dict[str, t.Any], display_id:
str, cell_index: int
+ self,
+ outs: list[NotebookNode],
+ msg: dict[str, t.Any],
+ display_id: str | None,
+ cell_index: int,
) -> NotebookNode | None:
"""Handle output."""
@@ -1251,7 +1255,7 @@
encoded_buffers = []
paths = msg["content"]["data"]["buffer_paths"]
buffers = msg["buffers"]
- for path, buffer in zip(paths, buffers):
+ for path, buffer in zip(paths, buffers, strict=False):
encoded_buffers.append(
{
"data": base64.b64encode(buffer).decode("utf-8"),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nbclient-0.10.2/nbclient/output_widget.py
new/nbclient-0.10.4/nbclient/output_widget.py
--- old/nbclient-0.10.2/nbclient/output_widget.py 2020-02-02
01:00:00.000000000 +0100
+++ new/nbclient-0.10.4/nbclient/output_widget.py 2020-02-02
01:00:00.000000000 +0100
@@ -72,7 +72,7 @@
self._publish_msg("comm_msg", data=data, metadata=metadata,
buffers=buffers)
def output(
- self, outs: list[NotebookNode], msg: dict[str, Any], display_id: str,
cell_index: int
+ self, outs: list[NotebookNode], msg: dict[str, Any], display_id: str |
None, cell_index: int
) -> None:
"""Handle output."""
if self.clear_before_next_output:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nbclient-0.10.2/nbclient/util.py
new/nbclient-0.10.4/nbclient/util.py
--- old/nbclient-0.10.2/nbclient/util.py 2020-02-02 01:00:00.000000000
+0100
+++ new/nbclient-0.10.4/nbclient/util.py 2020-02-02 01:00:00.000000000
+0100
@@ -5,7 +5,8 @@
from __future__ import annotations
import inspect
-from typing import Any, Callable
+from collections.abc import Callable
+from typing import Any
from jupyter_core.utils import ensure_async, run_sync
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nbclient-0.10.2/pyproject.toml
new/nbclient-0.10.4/pyproject.toml
--- old/nbclient-0.10.2/pyproject.toml 2020-02-02 01:00:00.000000000 +0100
+++ new/nbclient-0.10.4/pyproject.toml 2020-02-02 01:00:00.000000000 +0100
@@ -12,7 +12,7 @@
description = "A client library for executing notebooks. Formerly nbconvert's
ExecutePreprocessor."
readme = "README.md"
license = { file = "LICENSE" }
-requires-python = ">=3.9.0"
+requires-python = ">=3.10.0"
authors = [
{ name = "Jupyter Development Team", email = "[email protected]" },
]
@@ -29,16 +29,16 @@
"License :: OSI Approved :: BSD License",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
- "Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
+ "Programming Language :: Python :: 3.14",
]
dependencies = [
"jupyter_client>=6.1.12",
"jupyter_core>=4.12,!=5.0.*",
- "nbformat>=5.1",
+ "nbformat>=5.1.3",
"traitlets>=5.4",
]
@@ -49,9 +49,9 @@
"ipython",
"ipywidgets",
"nbconvert>=7.1.0",
- "pytest-asyncio",
+ "pytest-asyncio >=1.3.0",
"pytest-cov>=4.0",
- "pytest>=7.0,<8",
+ "pytest>=9.0.1,<10",
"testpath",
"xmltodict",
]
@@ -142,8 +142,9 @@
"module:subprocess .* is still running:ResourceWarning",
"module:Unclosed context <zmq:ResourceWarning",
"module:datetime.datetime.utc:DeprecationWarning",
+ "module:'asyncio.WindowsSelectorEventLoopPolicy' is deprecated and slated
for removal in Python 3.16:DeprecationWarning",
+ "module:'asyncio.set_event_loop_policy' is deprecated and slated for removal
in Python 3.16:DeprecationWarning",
]
-asyncio_mode = "auto"
[tool.coverage.report]
exclude_lines = [
@@ -165,7 +166,7 @@
[tool.mypy]
files = "nbclient"
-python_version = "3.8"
+python_version = "3.10"
strict = true
enable_error_code = ["ignore-without-code", "redundant-expr", "truthy-bool"]
warn_unreachable = true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nbclient-0.10.2/tests/files/update-display-id.ipynb
new/nbclient-0.10.4/tests/files/update-display-id.ipynb
--- old/nbclient-0.10.2/tests/files/update-display-id.ipynb 2020-02-02
01:00:00.000000000 +0100
+++ new/nbclient-0.10.4/tests/files/update-display-id.ipynb 2020-02-02
01:00:00.000000000 +0100
@@ -11,6 +11,8 @@
"ip = get_ipython()\n",
"\n",
"from IPython.display import display\n",
+ "import IPython\n",
+ "do_minus_one = IPython.version_info >= (9, 8)\n",
"\n",
"\n",
"def display_with_id(obj, display_id, update=False,
execute_result=False):\n",
@@ -21,7 +23,7 @@
" content = {\"data\": data, \"metadata\": md, \"transient\":
transient}\n",
" if execute_result:\n",
" msg_type = \"execute_result\"\n",
- " content[\"execution_count\"] = ip.execution_count\n",
+ " content[\"execution_count\"] = ip.execution_count - (1 if
do_minus_one else 0)\n",
" else:\n",
" msg_type = \"update_display_data\" if update else
\"display_data\"\n",
" session.send(iopub, msg_type, content, parent=ip.parent_header)"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nbclient-0.10.2/tests/test_client.py
new/nbclient-0.10.4/tests/test_client.py
--- old/nbclient-0.10.2/tests/test_client.py 2020-02-02 01:00:00.000000000
+0100
+++ new/nbclient-0.10.4/tests/test_client.py 2020-02-02 01:00:00.000000000
+0100
@@ -283,7 +283,7 @@
actual_cells = actual["cells"]
assert len(expected_cells) == len(actual_cells)
- for expected_cell, actual_cell in zip(expected_cells, actual_cells):
+ for expected_cell, actual_cell in zip(expected_cells, actual_cells,
strict=False):
# Uncomment these to help debug test failures better
# from pprint import pprint
# pprint(expected_cell)