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 2025-12-15 11:58:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-nbclient (Old)
and /work/SRC/openSUSE:Factory/.python-nbclient.new.1939 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-nbclient"
Mon Dec 15 11:58:33 2025 rev:36 rq:1322780 version:0.10.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-nbclient/python-nbclient.changes
2025-02-27 16:40:46.172156839 +0100
+++
/work/SRC/openSUSE:Factory/.python-nbclient.new.1939/python-nbclient.changes
2025-12-15 12:04:41.103198228 +0100
@@ -1,0 +2,12 @@
+Sat Dec 13 14:37:39 UTC 2025 - Dirk Müller <[email protected]>
+
+- update to 0.10.2:
+ * Drop Python 3.8, test PyPy 3.10 #323 (@davidbrochart)
+ * Gracefully handle explicit transient=None #322
+- update to 0.10.1:
+ * Run docs on ubuntu #314 (@blink1073)
+ * avoid deprecation warning for py313 #320 (@lucascolley)
+- drop nbclient-pr315-date-deprecation.patch,
+ nbclient-pr317-py313tests.patch: (upstream)
+
+-------------------------------------------------------------------
Old:
----
nbclient-0.10.0.tar.gz
nbclient-pr315-date-deprecation.patch
nbclient-pr317-py313tests.patch
New:
----
nbclient-0.10.2.tar.gz
----------(Old B)----------
Old: * avoid deprecation warning for py313 #320 (@lucascolley)
- drop nbclient-pr315-date-deprecation.patch,
nbclient-pr317-py313tests.patch: (upstream)
Old:- drop nbclient-pr315-date-deprecation.patch,
nbclient-pr317-py313tests.patch: (upstream)
----------(Old E)----------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-nbclient.spec ++++++
--- /var/tmp/diff_new_pack.Bzr7Np/_old 2025-12-15 12:04:41.943233605 +0100
+++ /var/tmp/diff_new_pack.Bzr7Np/_new 2025-12-15 12:04:41.947233773 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-nbclient
#
-# Copyright (c) 2024 SUSE LLC
+# Copyright (c) 2025 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,16 +34,12 @@
%{?sle15_python_module_pythons}
Name: python-nbclient%{psuffix}
-Version: 0.10.0
+Version: 0.10.2
Release: 0
Summary: A client library for executing notebooks
License: BSD-3-Clause
URL: https://github.com/jupyter/nbclient
Source:
https://files.pythonhosted.org/packages/source/n/nbclient/nbclient-%{version}.tar.gz
-# PATCH-FIX-UPSTREAM nbclient-pr315-date-deprecation.patch
gh#jupyter/nbclient#315 gh#jupyter/nbclient#318
-Patch0: nbclient-pr315-date-deprecation.patch
-# PATCH-FIX-UPSTREAM nbclient-pr317-py313tests.patch gh#jupyter/nbclient#317
-Patch1: nbclient-pr317-py313tests.patch
BuildRequires: %{python_module base >= 3.8}
BuildRequires: %{python_module hatchling >= 1.10.0}
BuildRequires: %{python_module pip}
++++++ nbclient-0.10.0.tar.gz -> nbclient-0.10.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nbclient-0.10.0/PKG-INFO new/nbclient-0.10.2/PKG-INFO
--- old/nbclient-0.10.0/PKG-INFO 2020-02-02 01:00:00.000000000 +0100
+++ new/nbclient-0.10.2/PKG-INFO 2020-02-02 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.4
Name: nbclient
-Version: 0.10.0
+Version: 0.10.2
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,11 +46,12 @@
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
-Requires-Python: >=3.8.0
+Classifier: Programming Language :: Python :: 3.12
+Classifier: Programming Language :: Python :: 3.13
+Requires-Python: >=3.9.0
Requires-Dist: jupyter-client>=6.1.12
Requires-Dist: jupyter-core!=5.0.*,>=4.12
Requires-Dist: nbformat>=5.1
@@ -59,19 +60,28 @@
Requires-Dist: pre-commit; extra == 'dev'
Provides-Extra: docs
Requires-Dist: autodoc-traits; extra == 'docs'
+Requires-Dist: flaky; extra == 'docs'
+Requires-Dist: ipykernel>=6.19.3; extra == 'docs'
+Requires-Dist: ipython; extra == 'docs'
+Requires-Dist: ipywidgets; extra == 'docs'
Requires-Dist: mock; extra == 'docs'
Requires-Dist: moto; extra == 'docs'
Requires-Dist: myst-parser; extra == 'docs'
-Requires-Dist: nbclient[test]; extra == 'docs'
+Requires-Dist: nbconvert>=7.1.0; extra == 'docs'
+Requires-Dist: pytest-asyncio; extra == 'docs'
+Requires-Dist: pytest-cov>=4.0; extra == 'docs'
+Requires-Dist: pytest<8,>=7.0; extra == 'docs'
Requires-Dist: sphinx-book-theme; extra == 'docs'
Requires-Dist: sphinx>=1.7; extra == 'docs'
Requires-Dist: sphinxcontrib-spelling; extra == 'docs'
+Requires-Dist: testpath; extra == 'docs'
+Requires-Dist: xmltodict; extra == 'docs'
Provides-Extra: test
Requires-Dist: flaky; extra == 'test'
Requires-Dist: ipykernel>=6.19.3; extra == 'test'
Requires-Dist: ipython; extra == 'test'
Requires-Dist: ipywidgets; extra == 'test'
-Requires-Dist: nbconvert>=7.0.0; extra == 'test'
+Requires-Dist: nbconvert>=7.1.0; extra == 'test'
Requires-Dist: pytest-asyncio; extra == 'test'
Requires-Dist: pytest-cov>=4.0; extra == 'test'
Requires-Dist: pytest<8,>=7.0; extra == 'test'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nbclient-0.10.0/nbclient/_version.py
new/nbclient-0.10.2/nbclient/_version.py
--- old/nbclient-0.10.0/nbclient/_version.py 2020-02-02 01:00:00.000000000
+0100
+++ new/nbclient-0.10.2/nbclient/_version.py 2020-02-02 01:00:00.000000000
+0100
@@ -1,14 +1,15 @@
"""Version info."""
+from __future__ import annotations
+
import re
-from typing import List, Union
-__version__ = "0.10.0"
+__version__ = "0.10.2"
# Build up version_info tuple for backwards compatibility
pattern = r"(?P<major>\d+).(?P<minor>\d+).(?P<patch>\d+)(?P<rest>.*)"
match = re.match(pattern, __version__)
if match:
- parts: List[Union[int, str]] = [int(match[part]) for part in ["major",
"minor", "patch"]]
+ parts: list[int | str] = [int(match[part]) for part in ["major", "minor",
"patch"]]
if match["rest"]:
parts.append(match["rest"])
else:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nbclient-0.10.0/nbclient/client.py
new/nbclient-0.10.2/nbclient/client.py
--- old/nbclient-0.10.0/nbclient/client.py 2020-02-02 01:00:00.000000000
+0100
+++ new/nbclient-0.10.2/nbclient/client.py 2020-02-02 01:00:00.000000000
+0100
@@ -1100,7 +1100,12 @@
content = msg["content"]
self.log.debug("content: %s", content)
- display_id = content.get("transient", {}).get("display_id", None)
+ # while it's tempting to go for a more concise
+ # display_id = content.get("transient", {}).get("display_id", None)
+ # this breaks if transient is explicitly set to None
+ transient = content.get("transient")
+ display_id = transient.get("display_id") if transient else None
+
if display_id and msg_type in {"execute_result", "display_data",
"update_display_data"}:
self._update_display_id(display_id, msg)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nbclient-0.10.0/nbclient/jsonutil.py
new/nbclient-0.10.2/nbclient/jsonutil.py
--- old/nbclient-0.10.0/nbclient/jsonutil.py 2020-02-02 01:00:00.000000000
+0100
+++ new/nbclient-0.10.2/nbclient/jsonutil.py 2020-02-02 01:00:00.000000000
+0100
@@ -26,7 +26,7 @@
# holy crap, strptime is not threadsafe.
# Calling it once at import seems to help.
-datetime.strptime("1", "%d")
+datetime.strptime("2000-01-01", "%Y-%m-%d")
# -----------------------------------------------------------------------------
# Classes and functions
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nbclient-0.10.0/pyproject.toml
new/nbclient-0.10.2/pyproject.toml
--- old/nbclient-0.10.0/pyproject.toml 2020-02-02 01:00:00.000000000 +0100
+++ new/nbclient-0.10.2/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.8.0"
+requires-python = ">=3.9.0"
authors = [
{ name = "Jupyter Development Team", email = "[email protected]" },
]
@@ -29,10 +29,11 @@
"License :: OSI Approved :: BSD License",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
- "Programming Language :: Python :: 3.8",
"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",
]
dependencies = [
"jupyter_client>=6.1.12",
@@ -47,7 +48,7 @@
"ipykernel>=6.19.3",
"ipython",
"ipywidgets",
- "nbconvert>=7.0.0",
+ "nbconvert>=7.1.0",
"pytest-asyncio",
"pytest-cov>=4.0",
"pytest>=7.0,<8",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nbclient-0.10.0/tests/test_cli.py
new/nbclient-0.10.2/tests/test_cli.py
--- old/nbclient-0.10.0/tests/test_cli.py 2020-02-02 01:00:00.000000000
+0100
+++ new/nbclient-0.10.2/tests/test_cli.py 2020-02-02 01:00:00.000000000
+0100
@@ -1,3 +1,4 @@
+import sys
from pathlib import Path
from subprocess import CalledProcessError, check_output
from unittest.mock import call, mock_open, patch
@@ -6,6 +7,11 @@
from nbclient.cli import NbClientApp
+if sys.version_info >= (3, 13):
+ PATH_OPEN_CALL_STEP = 4
+else:
+ PATH_OPEN_CALL_STEP = 3
+
current_dir = Path(__file__).parent.absolute()
@@ -60,7 +66,7 @@
# add suffix if needed
paths = [p.with_suffix(".ipynb") for p in paths]
- assert path_open.mock_calls[::3] == [call(p) for p in paths]
+ assert path_open.mock_calls[::PATH_OPEN_CALL_STEP] == [call(p) for p in
paths]
assert reader.call_count == len(paths)
# assert reader.mock_calls == [call(p, as_version=4) for p in paths]
@@ -114,7 +120,7 @@
# add suffix if needed
paths = [p.with_suffix(".ipynb") for p in paths]
- assert path_open.mock_calls[::3] == [call(p) for p in paths]
+ assert path_open.mock_calls[::PATH_OPEN_CALL_STEP] == [call(p) for p in
paths]
assert reader.call_count == len(paths)
expected = []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/nbclient-0.10.0/tests/test_client.py
new/nbclient-0.10.2/tests/test_client.py
--- old/nbclient-0.10.0/tests/test_client.py 2020-02-02 01:00:00.000000000
+0100
+++ new/nbclient-0.10.2/tests/test_client.py 2020-02-02 01:00:00.000000000
+0100
@@ -11,6 +11,7 @@
import threading
import warnings
from base64 import b64decode, b64encode
+from platform import python_implementation
from queue import Empty
from typing import Any
from unittest.mock import MagicMock, Mock
@@ -325,7 +326,7 @@
("Factorials.ipynb", {"kernel_name": "python"}),
("HelloWorld.ipynb", {"kernel_name": "python"}),
("Inline Image.ipynb", {"kernel_name": "python"}),
- (
+ pytest.param(
"Interrupt.ipynb",
{
"kernel_name": "python",
@@ -333,6 +334,7 @@
"interrupt_on_timeout": True,
"allow_errors": True,
},
+ marks=pytest.mark.skipif(python_implementation() == "PyPy",
reason="PyPy hangs"),
),
("JupyterWidgets.ipynb", {"kernel_name": "python"}),
("Skip Exceptions with Cell Tags.ipynb", {"kernel_name": "python"}),