[med-svn] [Git][med-team/openslide-python][upstream] New upstream version 1.4.3
Étienne Mollier (@emollier)
gitlab at salsa.debian.org
Sun Jan 4 18:13:26 GMT 2026
Étienne Mollier pushed to branch upstream at Debian Med / openslide-python
Commits:
7bd1f52f by Étienne Mollier at 2026-01-04T18:59:23+01:00
New upstream version 1.4.3
- - - - -
9 changed files:
- CHANGELOG.md
- PKG-INFO
- README.md
- openslide/_convert.c
- openslide/_version.py
- openslide/lowlevel.py
- openslide_python.egg-info/PKG-INFO
- pyproject.toml
- setup.py
Changes:
=====================================
CHANGELOG.md
=====================================
@@ -1,5 +1,20 @@
# Notable Changes in OpenSlide Python
+## Version 1.4.3, 2025-12-03
+
+### New features
+
+* Support [free-threaded Python][free-thread]
+
+### Changes
+
+* Drop support for Python 3.9
+* Switch extension module to [multi-phase initialization][multi-phase-init]
+
+[free-thread]: https://docs.python.org/3/howto/free-threading-python.html
+[multi-phase-init]: https://peps.python.org/pep-0489/
+
+
## Version 1.4.2, 2025-04-28
### Changes
=====================================
PKG-INFO
=====================================
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: openslide-python
-Version: 1.4.2
+Version: 1.4.3
Summary: Python interface to OpenSlide
Maintainer-email: OpenSlide project <openslide-users at lists.andrew.cmu.edu>
License-Expression: LGPL-2.1-only AND BSD-3-Clause AND MIT AND LicenseRef-Public-Domain
@@ -18,14 +18,15 @@ Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
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
+Classifier: Programming Language :: Python :: 3.14
+Classifier: Programming Language :: Python :: Free Threading :: 2 - Beta
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Typing :: Typed
-Requires-Python: >=3.9
+Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: COPYING.LESSER
License-File: examples/deepzoom/licenses/LICENSE.jquery
@@ -77,7 +78,7 @@ OpenSlide can read virtual slides in several formats:
## Requirements
-* Python ≥ 3.9
+* Python ≥ 3.10
* OpenSlide ≥ 3.4.0
* Pillow
=====================================
README.md
=====================================
@@ -41,7 +41,7 @@ OpenSlide can read virtual slides in several formats:
## Requirements
-* Python ≥ 3.9
+* Python ≥ 3.10
* OpenSlide ≥ 3.4.0
* Pillow
=====================================
openslide/_convert.c
=====================================
@@ -96,22 +96,30 @@ DONE:
return ret;
}
-static PyMethodDef ConvertMethods[] = {
+static PyMethodDef _convert_methods[] = {
{"argb2rgba", _convert_argb2rgba, METH_VARARGS,
"Convert aRGB to RGBA in place."},
{NULL, NULL, 0, NULL}
};
-static struct PyModuleDef convertmodule = {
+static PyModuleDef_Slot _convert_slots[] = {
+#if PY_VERSION_HEX >= 0x030D0000 && !defined(Py_LIMITED_API)
+ {Py_mod_gil, Py_MOD_GIL_NOT_USED},
+#endif
+ {0, NULL}
+};
+
+static struct PyModuleDef _convert_module = {
PyModuleDef_HEAD_INIT,
"_convert",
NULL,
0,
- ConvertMethods
+ _convert_methods,
+ _convert_slots,
};
PyMODINIT_FUNC
PyInit__convert(void)
{
- return PyModule_Create2(&convertmodule, PYTHON_API_VERSION);
+ return PyModuleDef_Init(&_convert_module);
}
=====================================
openslide/_version.py
=====================================
@@ -21,4 +21,4 @@
This module is an implementation detail. The package version should be
obtained from openslide.__version__."""
-__version__ = '1.4.2'
+__version__ = '1.4.3'
=====================================
openslide/lowlevel.py
=====================================
@@ -31,6 +31,7 @@ rather than in the high-level interface.)
from __future__ import annotations
+from collections.abc import Callable
from ctypes import (
CDLL,
POINTER,
@@ -49,7 +50,7 @@ from ctypes import (
from itertools import count
import os
import platform
-from typing import TYPE_CHECKING, Any, Callable, Protocol, TypeVar, cast
+from typing import TYPE_CHECKING, Any, Protocol, TypeVar, cast
from PIL import Image
=====================================
openslide_python.egg-info/PKG-INFO
=====================================
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: openslide-python
-Version: 1.4.2
+Version: 1.4.3
Summary: Python interface to OpenSlide
Maintainer-email: OpenSlide project <openslide-users at lists.andrew.cmu.edu>
License-Expression: LGPL-2.1-only AND BSD-3-Clause AND MIT AND LicenseRef-Public-Domain
@@ -18,14 +18,15 @@ Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
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
+Classifier: Programming Language :: Python :: 3.14
+Classifier: Programming Language :: Python :: Free Threading :: 2 - Beta
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Typing :: Typed
-Requires-Python: >=3.9
+Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: COPYING.LESSER
License-File: examples/deepzoom/licenses/LICENSE.jquery
@@ -77,7 +78,7 @@ OpenSlide can read virtual slides in several formats:
## Requirements
-* Python ≥ 3.9
+* Python ≥ 3.10
* OpenSlide ≥ 3.4.0
* Pillow
=====================================
pyproject.toml
=====================================
@@ -18,15 +18,16 @@ classifiers = [
"Operating System :: POSIX :: Linux",
"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",
+ "Programming Language :: Python :: Free Threading :: 2 - Beta",
"Topic :: Scientific/Engineering :: Bio-Informatics",
"Typing :: Typed",
]
-requires-python = ">= 3.9"
+requires-python = ">= 3.10"
dependencies = ["Pillow"]
dynamic = ["version"]
@@ -51,7 +52,7 @@ openslide = ["py.typed", "*.pyi"]
[tool.black]
skip-string-normalization = true
-target-version = ["py39", "py310", "py311", "py312", "py313"]
+target-version = ["py310", "py311", "py312", "py313", "py314"]
# Ref: https://github.com/codespell-project/codespell#using-a-config-file
[tool.codespell]
=====================================
setup.py
=====================================
@@ -1,5 +1,6 @@
from pathlib import Path
import sys
+import sysconfig
from setuptools import Extension, setup
@@ -7,9 +8,9 @@ from setuptools import Extension, setup
with open(Path(__file__).parent / 'openslide/_version.py') as _fh:
exec(_fh.read()) # instantiates __version__
-# use the Limited API on Python 3.11+; build release-specific wheels on
-# older Python
-_abi3 = sys.version_info >= (3, 11)
+# use the Limited API on Python 3.11+ on GIL builds; build release-specific
+# wheels on older or free-threaded Python
+_abi3 = sys.version_info >= (3, 11) and not sysconfig.get_config_var('Py_GIL_DISABLED')
setup(
ext_modules=[
View it on GitLab: https://salsa.debian.org/med-team/openslide-python/-/commit/7bd1f52f98a193900e3cefbf16cf4ad7aeb2b4a8
--
View it on GitLab: https://salsa.debian.org/med-team/openslide-python/-/commit/7bd1f52f98a193900e3cefbf16cf4ad7aeb2b4a8
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20260104/de0ed827/attachment-0001.htm>
More information about the debian-med-commit
mailing list