Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-imageio for openSUSE:Factory 
checked in at 2026-10-26 10:04:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-imageio (Old)
 and      /work/SRC/openSUSE:Factory/.python-imageio.new.2252680 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-imageio"

Mon Oct 26 10:04:58 2026 rev:26 rq:1392637 version:2.38.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-imageio/python-imageio.changes    
2026-10-05 12:57:54.461477870 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-imageio.new.2252680/python-imageio.changes   
    2026-10-26 10:06:23.473787802 +0100
@@ -1,0 +2,8 @@
+Mon Oct 26 07:45:57 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 2.38.1:
+  * Correct v2 format argument type hints
+  * Drop Python 3.10, fix PyAV gc stall, temporarily pin pillow
+    on pypy (`1c83326`)
+
+-------------------------------------------------------------------

Old:
----
  imageio-2.38.0.tar.gz

New:
----
  imageio-2.38.1.tar.gz

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

Other differences:
------------------
++++++ python-imageio.spec ++++++
--- /var/tmp/diff_new_pack.zeIjMI/_old  2026-10-26 10:06:25.242861995 +0100
+++ /var/tmp/diff_new_pack.zeIjMI/_new  2026-10-26 10:06:25.246862163 +0100
@@ -19,14 +19,14 @@
 %bcond_with test_extras
 %{?sle15_python_module_pythons}
 Name:           python-imageio
-Version:        2.38.0
+Version:        2.38.1
 Release:        0
 Summary:        Python library for reading and writing image, video, and 
related formats
 License:        BSD-2-Clause
 URL:            https://github.com/imageio/imageio
 Source0:        
https://files.pythonhosted.org/packages/source/i/imageio/imageio-%{version}.tar.gz
 BuildRequires:  %{python_module Pillow >= 8.3.2}
-BuildRequires:  %{python_module base >= 3.10}
+BuildRequires:  %{python_module base >= 3.11}
 BuildRequires:  %{python_module numpy >= 2}
 BuildRequires:  %{python_module pip}
 BuildRequires:  %{python_module setuptools >= 61.0}

++++++ imageio-2.38.0.tar.gz -> imageio-2.38.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imageio-2.38.0/ImageIO.egg-info/PKG-INFO 
new/imageio-2.38.1/ImageIO.egg-info/PKG-INFO
--- old/imageio-2.38.0/ImageIO.egg-info/PKG-INFO        2026-09-28 
09:43:44.600139100 +0200
+++ new/imageio-2.38.1/ImageIO.egg-info/PKG-INFO        2026-10-08 
16:35:08.638666400 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: ImageIO
-Version: 2.38.0
+Version: 2.38.1
 Summary: Read and write images and video across all major formats. Supports 
scientific and volumetric data.
 Author: ImageIO contributors
 Maintainer-email: Sebastian Wallkotter <[email protected]>, Almar 
Klein <[email protected]>
@@ -18,12 +18,11 @@
 Classifier: Operating System :: Microsoft :: Windows
 Classifier: Operating System :: POSIX
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
 Classifier: Programming Language :: Python :: 3.12
 Classifier: Programming Language :: Python :: 3.13
 Classifier: Programming Language :: Python :: 3.14
-Requires-Python: >=3.10
+Requires-Python: >=3.11
 Description-Content-Type: text/markdown
 License-File: LICENSE
 Requires-Dist: numpy
@@ -127,7 +126,7 @@
 
 Imageio is a mature Python library that makes it easy to read and write image
 and video data. This includes animated images, video, volumetric data, and
-scientific formats. It is cross-platform, runs on Python 3.10+, and is easy to
+scientific formats. It is cross-platform, runs on Python 3.11 through 3.14, 
and is easy to
 install.
 
 Professional support is available via
@@ -167,7 +166,7 @@
   
[install](https://imageio.readthedocs.io/en/stable/getting_started/installation.html)
   using Conda or pip
 - Few core dependencies (only NumPy and Pillow)
-- Pure Python, runs on Python 3.10+, and PyPy
+- Pure Python, runs on Python 3.11 through 3.14, and PyPy
 - Cross platform, runs on Windows, Linux, macOS
 - More than 295 supported
   [formats](https://imageio.readthedocs.io/en/stable/formats/index.html)
@@ -181,7 +180,7 @@
 
 Minimal requirements:
 
-- Python 3.10+
+- Python 3.11 through 3.14
 - NumPy
 - Pillow >= 8.3.2
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imageio-2.38.0/PKG-INFO new/imageio-2.38.1/PKG-INFO
--- old/imageio-2.38.0/PKG-INFO 2026-09-28 09:43:44.662139000 +0200
+++ new/imageio-2.38.1/PKG-INFO 2026-10-08 16:35:08.700666200 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: ImageIO
-Version: 2.38.0
+Version: 2.38.1
 Summary: Read and write images and video across all major formats. Supports 
scientific and volumetric data.
 Author: ImageIO contributors
 Maintainer-email: Sebastian Wallkotter <[email protected]>, Almar 
Klein <[email protected]>
@@ -18,12 +18,11 @@
 Classifier: Operating System :: Microsoft :: Windows
 Classifier: Operating System :: POSIX
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
 Classifier: Programming Language :: Python :: 3.12
 Classifier: Programming Language :: Python :: 3.13
 Classifier: Programming Language :: Python :: 3.14
-Requires-Python: >=3.10
+Requires-Python: >=3.11
 Description-Content-Type: text/markdown
 License-File: LICENSE
 Requires-Dist: numpy
@@ -127,7 +126,7 @@
 
 Imageio is a mature Python library that makes it easy to read and write image
 and video data. This includes animated images, video, volumetric data, and
-scientific formats. It is cross-platform, runs on Python 3.10+, and is easy to
+scientific formats. It is cross-platform, runs on Python 3.11 through 3.14, 
and is easy to
 install.
 
 Professional support is available via
@@ -167,7 +166,7 @@
   
[install](https://imageio.readthedocs.io/en/stable/getting_started/installation.html)
   using Conda or pip
 - Few core dependencies (only NumPy and Pillow)
-- Pure Python, runs on Python 3.10+, and PyPy
+- Pure Python, runs on Python 3.11 through 3.14, and PyPy
 - Cross platform, runs on Windows, Linux, macOS
 - More than 295 supported
   [formats](https://imageio.readthedocs.io/en/stable/formats/index.html)
@@ -181,7 +180,7 @@
 
 Minimal requirements:
 
-- Python 3.10+
+- Python 3.11 through 3.14
 - NumPy
 - Pillow >= 8.3.2
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imageio-2.38.0/README.md new/imageio-2.38.1/README.md
--- old/imageio-2.38.0/README.md        2026-09-28 09:43:35.711352300 +0200
+++ new/imageio-2.38.1/README.md        2026-10-08 16:34:58.998676500 +0200
@@ -14,7 +14,7 @@
 
 Imageio is a mature Python library that makes it easy to read and write image
 and video data. This includes animated images, video, volumetric data, and
-scientific formats. It is cross-platform, runs on Python 3.10+, and is easy to
+scientific formats. It is cross-platform, runs on Python 3.11 through 3.14, 
and is easy to
 install.
 
 Professional support is available via
@@ -54,7 +54,7 @@
   
[install](https://imageio.readthedocs.io/en/stable/getting_started/installation.html)
   using Conda or pip
 - Few core dependencies (only NumPy and Pillow)
-- Pure Python, runs on Python 3.10+, and PyPy
+- Pure Python, runs on Python 3.11 through 3.14, and PyPy
 - Cross platform, runs on Windows, Linux, macOS
 - More than 295 supported
   [formats](https://imageio.readthedocs.io/en/stable/formats/index.html)
@@ -68,7 +68,7 @@
 
 Minimal requirements:
 
-- Python 3.10+
+- Python 3.11 through 3.14
 - NumPy
 - Pillow >= 8.3.2
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imageio-2.38.0/docs/user_guide/installation.rst 
new/imageio-2.38.1/docs/user_guide/installation.rst
--- old/imageio-2.38.0/docs/user_guide/installation.rst 2026-09-28 
09:43:35.713497600 +0200
+++ new/imageio-2.38.1/docs/user_guide/installation.rst 2026-10-08 
16:34:59.000555000 +0200
@@ -2,7 +2,7 @@
 ==================
 
 Imageio is written in pure Python, so installation is easy.
-Imageio works on Python 3.5+. It also works on Pypy.
+Imageio works on Python 3.11 through 3.14. It also works on Pypy.
 Imageio depends on Numpy and Pillow. For some formats, imageio needs
 additional libraries/executables (e.g. ffmpeg), which imageio helps you
 to download/install.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imageio-2.38.0/imageio/__init__.py 
new/imageio-2.38.1/imageio/__init__.py
--- old/imageio-2.38.0/imageio/__init__.py      2026-09-28 09:43:35.713979700 
+0200
+++ new/imageio-2.38.1/imageio/__init__.py      2026-10-08 16:34:59.001057600 
+0200
@@ -8,7 +8,7 @@
 """
 Imageio is a Python library that provides an easy interface to read and
 write a wide range of image data, including animated images, volumetric
-data, and scientific formats. It is cross-platform, runs on Python 3.10+,
+data, and scientific formats. It is cross-platform, runs on Python 3.11 
through 3.14,
 and is easy to install.
 
 Main website: https://imageio.readthedocs.io/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imageio-2.38.0/imageio/plugins/pyav.py 
new/imageio-2.38.1/imageio/plugins/pyav.py
--- old/imageio-2.38.0/imageio/plugins/pyav.py  2026-09-28 09:43:35.719187700 
+0200
+++ new/imageio-2.38.1/imageio/plugins/pyav.py  2026-10-08 16:34:59.006676400 
+0200
@@ -175,6 +175,7 @@
 
 """
 
+import gc
 from fractions import Fraction
 from math import ceil
 from typing import Any, Dict, Generator, List, Optional, Tuple, Union
@@ -829,6 +830,21 @@
         if self._container is not None:
             self._container.close()
 
+        # PyAV's Graph and its FilterContexts reference each other, so the 
graph
+        # stays alive until a cyclic collection. Its destructor joins the 
filter
+        # workers. Collect here so that join happens on this thread.
+        self._video_filter = None
+        gc.collect()
+
+        # Workaround: PyAV keeps a swscale worker pool on a private 
thread-local
+        # for the life of the thread. The pool survives container.close() and
+        # deadlocks a later fork inside gc.collect(). Dropping the reformatter
+        # runs its destructor, which joins the workers. Remove this once PyAV
+        # frees the pool itself.
+        thread_local = getattr(av.video.frame, "_thread_local", None)
+        if getattr(thread_local, "reformatter", None) is not None:
+            del thread_local.reformatter
+
         self.request.finish()
 
     def __enter__(self) -> "PyAVPlugin":
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imageio-2.38.0/imageio/v2.pyi 
new/imageio-2.38.1/imageio/v2.pyi
--- old/imageio-2.38.0/imageio/v2.pyi   2026-09-28 09:43:35.720188000 +0200
+++ new/imageio-2.38.1/imageio/v2.pyi   2026-10-08 16:34:59.007676400 +0200
@@ -17,53 +17,62 @@
 def help(name=None) -> None: ...
 def decypher_format_arg(format_name: Union[str, None]) -> Dict[str, str]: ...
 def get_reader(
-    uri: ImageResource, format: Format = None, mode: str = "?", **kwargs
+    uri: ImageResource, format: Union[str, None] = None, mode: str = "?", 
**kwargs
 ) -> Format.Reader: ...
 def get_writer(
-    uri: ImageResource, format: Format = None, mode: str = "?", **kwargs
+    uri: ImageResource, format: Union[str, None] = None, mode: str = "?", 
**kwargs
 ) -> Format.Writer: ...
-def imread(uri: ImageResource, format: Format = None, **kwargs) -> Array: ...
+def imread(uri: ImageResource, format: Union[str, None] = None, **kwargs) -> 
Array: ...
 @overload
 def imwrite(
-    uri: Literal["<bytes>"], im: ArrayLike, format: Format = None, **kwargs
+    uri: Literal["<bytes>"], im: ArrayLike, format: Union[str, None] = None, 
**kwargs
 ) -> bytes: ...
 @overload
 def imwrite(
-    uri: ImageResource, im: ArrayLike, format: Format = None, **kwargs
+    uri: ImageResource, im: ArrayLike, format: Union[str, None] = None, 
**kwargs
 ) -> None: ...
 def mimread(
-    uri: ImageResource, format: Format = None, memtest=MEMTEST_DEFAULT_MIM, 
**kwargs
+    uri: ImageResource,
+    format: Union[str, None] = None,
+    memtest=MEMTEST_DEFAULT_MIM,
+    **kwargs,
 ) -> List[Array]: ...
 @overload
 def mimwrite(
-    uri: Literal["<bytes>"], ims: List[ArrayLike], format: Format = None, 
**kwargs
+    uri: Literal["<bytes>"],
+    ims: List[ArrayLike],
+    format: Union[str, None] = None,
+    **kwargs,
 ) -> bytes: ...
 @overload
 def mimwrite(
-    uri: ImageResource, ims: List[ArrayLike], format: Format = None, **kwargs
+    uri: ImageResource, ims: List[ArrayLike], format: Union[str, None] = None, 
**kwargs
 ) -> None: ...
-def volread(uri: ImageResource, format: Format = None, **kwargs) -> Array: ...
+def volread(uri: ImageResource, format: Union[str, None] = None, **kwargs) -> 
Array: ...
 @overload
 def volwrite(
-    uri: Literal["<bytes>"], im: ArrayLike, format: Format = None, **kwargs
+    uri: Literal["<bytes>"], im: ArrayLike, format: Union[str, None] = None, 
**kwargs
 ) -> bytes: ...
 @overload
 def volwrite(
-    uri: ImageResource, im: ArrayLike, format: Format = None, **kwargs
+    uri: ImageResource, im: ArrayLike, format: Union[str, None] = None, 
**kwargs
 ) -> None: ...
 def mvolread(
     uri: ImageResource,
-    format: Format = None,
+    format: Union[str, None] = None,
     memtest: float = MEMTEST_DEFAULT_MVOL,
     **kwargs,
 ) -> List[Array]: ...
 @overload
 def mvolwrite(
-    uri: Literal["<bytes>"], ims: List[ArrayLike], format: Format = None, 
**kwargs
+    uri: Literal["<bytes>"],
+    ims: List[ArrayLike],
+    format: Union[str, None] = None,
+    **kwargs,
 ) -> bytes: ...
 @overload
 def mvolwrite(
-    uri: ImageResource, ims: List[ArrayLike], format: Format = None, **kwargs
+    uri: ImageResource, ims: List[ArrayLike], format: Union[str, None] = None, 
**kwargs
 ) -> None: ...
 
 # aliases
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imageio-2.38.0/pyproject.toml 
new/imageio-2.38.1/pyproject.toml
--- old/imageio-2.38.0/pyproject.toml   2026-09-28 09:43:41.125846400 +0200
+++ new/imageio-2.38.1/pyproject.toml   2026-10-08 16:35:04.535222300 +0200
@@ -4,7 +4,7 @@
 
 [project]
 name = "ImageIO"
-version = "2.38.0"
+version = "2.38.1"
 authors = [
     {name = "ImageIO contributors"}
 ]
@@ -17,7 +17,7 @@
 
 license = "BSD-2-Clause"
 license-files = ["LICENSE"]
-requires-python = ">=3.10"
+requires-python = ">=3.11"
 dependencies = [
     "numpy",
     "pillow>=8.3.2",  # pinned to > 8.3.2 due to security vulnerability 
(GHSA-98vv-pw6r-q6q4)
@@ -52,7 +52,6 @@
     "Operating System :: Microsoft :: Windows",
     "Operating System :: POSIX",
     "Programming Language :: Python :: 3",
-    "Programming Language :: Python :: 3.10",
     "Programming Language :: Python :: 3.11",
     "Programming Language :: Python :: 3.12",
     "Programming Language :: Python :: 3.13",

Reply via email to