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",