From ad01d2af5bb22c9c3b4b19e8cf76ce09c9c3be78 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Tue, 6 Jan 2026 10:18:21 +0000 Subject: [PATCH 1/6] Switch `reshape` to `shape` and drop support for old numpy versions. --- .pre-commit-config.yaml | 10 +++++----- setup.cfg | 2 +- src/napari_matplotlib/tests/helpers.py | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 220acc6c..b1dba389 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -7,7 +7,7 @@ repos: - id: trailing-whitespace - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.13.1 + rev: v0.14.10 hooks: - id: ruff-format @@ -17,14 +17,14 @@ repos: - id: napari-plugin-checks - repo: https://github.com/pre-commit/mirrors-mypy - rev: v1.18.2 + rev: v1.19.1 hooks: - - id: mypy - additional_dependencies: [numpy, matplotlib] + - id: mypy + additional_dependencies: [numpy>=2, matplotlib] - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. - rev: 'v0.13.1' + rev: "v0.14.10" hooks: - id: ruff diff --git a/setup.cfg b/setup.cfg index 5ccef5c0..8c0eacf0 100644 --- a/setup.cfg +++ b/setup.cfg @@ -29,7 +29,7 @@ packages = find: install_requires = matplotlib napari>=0.5 - numpy>=1.23 + numpy>=2 tinycss2 python_requires = >=3.11 include_package_data = True diff --git a/src/napari_matplotlib/tests/helpers.py b/src/napari_matplotlib/tests/helpers.py index b00c0af4..e1fcb81b 100644 --- a/src/napari_matplotlib/tests/helpers.py +++ b/src/napari_matplotlib/tests/helpers.py @@ -15,7 +15,7 @@ def fig_to_array(fig: Figure) -> npt.NDArray[np.uint8]: io_buf.seek(0) img_arr: npt.NDArray[np.uint8] = np.reshape( np.frombuffer(io_buf.getvalue(), dtype=np.uint8), - newshape=(int(fig.bbox.bounds[3]), int(fig.bbox.bounds[2]), -1), + shape=(int(fig.bbox.bounds[3]), int(fig.bbox.bounds[2]), -1), ) return img_arr From a0cb021e6c411b07795d5c1ece5c4f294a0b9866 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Tue, 6 Jan 2026 10:19:26 +0000 Subject: [PATCH 2/6] Fix tox.ini missing env from envlist. --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 1ad69a42..e347ead6 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py{310,311,312} +envlist = py{311,312,313} isolated_build = true [gh-actions] From 65ed7d471c132c2103b16956ad54bde5780415eb Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Tue, 6 Jan 2026 10:21:29 +0000 Subject: [PATCH 3/6] Remove pre-commit.ci badge since we're not using it anymore. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index fb7aa635..2413bee6 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,6 @@ [![Python Version](https://img.shields.io/pypi/pyversions/napari-matplotlib.svg?color=green)](https://python.org) [![tests](https://github.com/matplotlib/napari-matplotlib/workflows/tests/badge.svg)](https://github.com/matplotlib/napari-matplotlib/actions) [![codecov](https://codecov.io/gh/matplotlib/napari-matplotlib/branch/main/graph/badge.svg)](https://codecov.io/gh/matplotlib/napari-matplotlib) -[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/matplotlib/pytest-mpl/master.svg)](https://results.pre-commit.ci/latest/github/matplotlib/pytest-mpl/master) [![napari hub](https://img.shields.io/endpoint?url=https://api.napari-hub.org/shields/napari-matplotlib)](https://napari-hub.org/plugins/napari-matplotlib) A plugin to create Matplotlib plots from napari layers From 094250eada0006db374f249f9f272e11377b4642 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Tue, 6 Jan 2026 10:24:04 +0000 Subject: [PATCH 4/6] Was actually added in numpy 2.1. So we also don't support numpy 2.0. --- .pre-commit-config.yaml | 2 +- setup.cfg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b1dba389..ee5dabf0 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -20,7 +20,7 @@ repos: rev: v1.19.1 hooks: - id: mypy - additional_dependencies: [numpy>=2, matplotlib] + additional_dependencies: [numpy>=2.1, matplotlib] - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. diff --git a/setup.cfg b/setup.cfg index 8c0eacf0..62df217c 100644 --- a/setup.cfg +++ b/setup.cfg @@ -29,7 +29,7 @@ packages = find: install_requires = matplotlib napari>=0.5 - numpy>=2 + numpy>=2.1 tinycss2 python_requires = >=3.11 include_package_data = True From d9226c427f7740020304345bd27538056d02bf10 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Tue, 6 Jan 2026 11:01:03 +0000 Subject: [PATCH 5/6] Aaaand, we can remove a deprecation warning suppression. --- pyproject.toml | 2 -- 1 file changed, 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index f76831a3..a53b6580 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,8 +14,6 @@ filterwarnings = [ "ignore:`np.bool8` is a deprecated alias for `np.bool_`:DeprecationWarning", # Coming from pydantic via napari "ignore:Pickle, copy, and deepcopy support will be removed from itertools in Python 3.14.:DeprecationWarning", - # Until we stop supporting older numpy versions (<2.1) - "ignore:(?s).*`newshape` keyword argument is deprecated.*$:DeprecationWarning", ] qt_api = "pyqt6" addopts = [ From 40d360b74c36cc8b57ffa60c27ff2ced5d9151aa Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Thu, 8 Jan 2026 11:18:10 +0000 Subject: [PATCH 6/6] Full SPEC-0 --- README.md | 6 +++--- setup.cfg | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2413bee6..c4e1599e 100644 --- a/README.md +++ b/README.md @@ -6,12 +6,14 @@ [![tests](https://github.com/matplotlib/napari-matplotlib/workflows/tests/badge.svg)](https://github.com/matplotlib/napari-matplotlib/actions) [![codecov](https://codecov.io/gh/matplotlib/napari-matplotlib/branch/main/graph/badge.svg)](https://codecov.io/gh/matplotlib/napari-matplotlib) [![napari hub](https://img.shields.io/endpoint?url=https://api.napari-hub.org/shields/napari-matplotlib)](https://napari-hub.org/plugins/napari-matplotlib) +[![SPEC 0 — Minimum Supported Dependencies](https://img.shields.io/badge/SPEC-0-green?labelColor=%23004811&color=%235CA038)](https://scientific-python.org/specs/spec-0000/) A plugin to create Matplotlib plots from napari layers ----------------------------------- +--- ## Introduction + `napari-matplotlib` is a bridge between `napari` and `matplotlib`, making it easy to create publication quality `Matplotlib` plots based on the data loaded in `napari` layers. Documentation can be found at https://napari-matplotlib.github.io/ @@ -32,9 +34,7 @@ If you encounter any problems, please [file an issue] along with a detailed desc [@napari]: https://github.com/napari [BSD-3]: http://opensource.org/licenses/BSD-3-Clause - [file an issue]: https://github.com/dstansby/napari-matplotlib/issues - [napari]: https://github.com/napari/napari [tox]: https://tox.readthedocs.io/en/latest/ [pip]: https://pypi.org/project/pip/ diff --git a/setup.cfg b/setup.cfg index 62df217c..a8224da1 100644 --- a/setup.cfg +++ b/setup.cfg @@ -29,7 +29,7 @@ packages = find: install_requires = matplotlib napari>=0.5 - numpy>=2.1 + numpy>=2 tinycss2 python_requires = >=3.11 include_package_data = True @@ -56,6 +56,7 @@ docs = sphinx-gallery testing = napari[pyqt6_experimental]>=0.4.18 + numpy>=2.1 pooch pyqt6 pytest