From bff378d33981226f8b20cfc280a8479e39b2efb6 Mon Sep 17 00:00:00 2001 From: David Stansby Date: Fri, 12 Jul 2024 16:34:14 +0200 Subject: [PATCH 01/10] Remove as_dict kwarg --- src/napari_matplotlib/base.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/napari_matplotlib/base.py b/src/napari_matplotlib/base.py index 720333e..ca69a54 100644 --- a/src/napari_matplotlib/base.py +++ b/src/napari_matplotlib/base.py @@ -42,7 +42,7 @@ def __init__( super().__init__(parent=parent) self.viewer = napari_viewer self.napari_theme_style_sheet = style_sheet_from_theme( - get_theme(napari_viewer.theme, as_dict=False) + get_theme(napari_viewer.theme) ) # Sets figure.* style @@ -84,7 +84,7 @@ def _on_napari_theme_changed(self, event: Event) -> None: Event that triggered the callback. """ self.napari_theme_style_sheet = style_sheet_from_theme( - get_theme(event.value, as_dict=False) + get_theme(event.value) ) self._replace_toolbar_icons() @@ -97,7 +97,7 @@ def _napari_theme_has_light_bg(self) -> bool: bool True if theme's background colour has hsl lighter than 50%, False if darker. """ - theme = napari.utils.theme.get_theme(self.viewer.theme, as_dict=False) + theme = napari.utils.theme.get_theme(self.viewer.theme) _, _, bg_lightness = theme.background.as_hsl_tuple() return bg_lightness > 0.5 From bae54169884654317627f1747afe65811910a9a8 Mon Sep 17 00:00:00 2001 From: David Stansby Date: Fri, 12 Jul 2024 16:37:05 +0200 Subject: [PATCH 02/10] Pin to napari >= 0.5 --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 073478a..a3709e6 100644 --- a/setup.cfg +++ b/setup.cfg @@ -28,7 +28,7 @@ project_urls = packages = find: install_requires = matplotlib - napari<0.5 + napari>=0.5 numpy>=1.23 tinycss2 python_requires = >=3.10 From 912ca09545831e667cd361fd8649a920a011e0c8 Mon Sep 17 00:00:00 2001 From: David Stansby Date: Fri, 12 Jul 2024 16:46:02 +0200 Subject: [PATCH 03/10] Fix scatter test? --- src/napari_matplotlib/tests/scatter/test_scatter.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/napari_matplotlib/tests/scatter/test_scatter.py b/src/napari_matplotlib/tests/scatter/test_scatter.py index a225863..f624293 100644 --- a/src/napari_matplotlib/tests/scatter/test_scatter.py +++ b/src/napari_matplotlib/tests/scatter/test_scatter.py @@ -15,7 +15,7 @@ def test_scatter_2D(make_napari_viewer, astronaut_data): viewer.add_image(astronaut_data[0], **astronaut_data[1], name="astronaut") viewer.add_image( - astronaut_data[0] * -1, **astronaut_data[1], name="astronaut_reversed" + 255 - astronaut_data[0], **astronaut_data[1], name="astronaut_reversed" ) # De-select existing selection viewer.layers.selection.clear() @@ -36,7 +36,7 @@ def test_scatter_3D(make_napari_viewer, brain_data): viewer.add_image(brain_data[0], **brain_data[1], name="brain") viewer.add_image( - brain_data[0] * -1, **brain_data[1], name="brain_reversed" + 255 -brain_data[0], **brain_data[1], name="brain_reversed" ) # De-select existing selection viewer.layers.selection.clear() From 70368d679c36dc522c08a011482d80b69653f0a1 Mon Sep 17 00:00:00 2001 From: David Stansby Date: Mon, 15 Jul 2024 20:05:54 +0100 Subject: [PATCH 04/10] Update test image --- .../scatter/baseline/test_scatter_2D.png | Bin 18394 -> 18788 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/napari_matplotlib/tests/scatter/baseline/test_scatter_2D.png b/src/napari_matplotlib/tests/scatter/baseline/test_scatter_2D.png index a11bda5f281b731712a2d1c6076f72569e0ff5e0..0685b192b01b00ab02c5bceb4d4c966a8264cb4a 100644 GIT binary patch literal 18788 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 Date: Mon, 15 Jul 2024 20:09:08 +0100 Subject: [PATCH 05/10] Fix brain data --- src/napari_matplotlib/tests/scatter/test_scatter.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/napari_matplotlib/tests/scatter/test_scatter.py b/src/napari_matplotlib/tests/scatter/test_scatter.py index f624293..70ae9eb 100644 --- a/src/napari_matplotlib/tests/scatter/test_scatter.py +++ b/src/napari_matplotlib/tests/scatter/test_scatter.py @@ -15,7 +15,7 @@ def test_scatter_2D(make_napari_viewer, astronaut_data): viewer.add_image(astronaut_data[0], **astronaut_data[1], name="astronaut") viewer.add_image( - 255 - astronaut_data[0], **astronaut_data[1], name="astronaut_reversed" + 2**8 - 1 - astronaut_data[0], **astronaut_data[1], name="astronaut_reversed" ) # De-select existing selection viewer.layers.selection.clear() @@ -36,7 +36,7 @@ def test_scatter_3D(make_napari_viewer, brain_data): viewer.add_image(brain_data[0], **brain_data[1], name="brain") viewer.add_image( - 255 -brain_data[0], **brain_data[1], name="brain_reversed" + 2**16 - 1 - brain_data[0], **brain_data[1], name="brain_reversed" ) # De-select existing selection viewer.layers.selection.clear() From c8e263659627b1211d381aa9f5baec9e923da479 Mon Sep 17 00:00:00 2001 From: David Stansby Date: Mon, 15 Jul 2024 20:10:08 +0100 Subject: [PATCH 06/10] Fix another as_dict arg --- src/napari_matplotlib/tests/test_theme.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/napari_matplotlib/tests/test_theme.py b/src/napari_matplotlib/tests/test_theme.py index 2310f32..5fedc43 100644 --- a/src/napari_matplotlib/tests/test_theme.py +++ b/src/napari_matplotlib/tests/test_theme.py @@ -29,7 +29,7 @@ def _mock_up_theme() -> None: Based on: https://napari.org/stable/gallery/new_theme.html """ - blue_theme = napari.utils.theme.get_theme("dark", False) + blue_theme = napari.utils.theme.get_theme("dark") blue_theme.label = "blue" blue_theme.background = "#4169e1" # my favourite shade of blue napari.utils.theme.register_theme( From 6c9eec191315f16017d3a5b4be9f1ba29dfba020 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Tue, 1 Oct 2024 09:58:23 +0100 Subject: [PATCH 07/10] Fix FutureWarning --- src/napari_matplotlib/tests/helpers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/napari_matplotlib/tests/helpers.py b/src/napari_matplotlib/tests/helpers.py index b00c0af..e1fcb81 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 8104b4b8e42c219f9485bae519835639a2042461 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Tue, 1 Oct 2024 10:00:01 +0100 Subject: [PATCH 08/10] Fix scatter test's OverflowError And revert to original baseline images. --- .../scatter/baseline/test_scatter_2D.png | Bin 18788 -> 18394 bytes .../tests/scatter/test_scatter.py | 6 ++++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/napari_matplotlib/tests/scatter/baseline/test_scatter_2D.png b/src/napari_matplotlib/tests/scatter/baseline/test_scatter_2D.png index 0685b192b01b00ab02c5bceb4d4c966a8264cb4a..a11bda5f281b731712a2d1c6076f72569e0ff5e0 100644 GIT binary patch literal 18394 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 Date: Tue, 1 Oct 2024 10:59:37 +0100 Subject: [PATCH 09/10] Try updating mypy's python version. --- pyproject.toml | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 05f7df6..a53b658 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,10 +13,16 @@ filterwarnings = [ "ignore:distutils Version classes are deprecated:DeprecationWarning", "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" + "ignore:Pickle, copy, and deepcopy support will be removed from itertools in Python 3.14.:DeprecationWarning", ] qt_api = "pyqt6" -addopts = ["--mpl", "--mpl-baseline-relative", "--strict-config", "--strict-markers", "-ra"] +addopts = [ + "--mpl", + "--mpl-baseline-relative", + "--strict-config", + "--strict-markers", + "-ra", +] minversion = "7" testpaths = ["src/napari_matplotlib/tests"] log_cli_level = "INFO" @@ -54,17 +60,15 @@ ignore = [ convention = "numpy" [tool.mypy] -python_version = "3.10" +python_version = "3.12" # Block below are checks that form part of mypy 'strict' mode strict = true disallow_subclassing_any = false # TODO: fix -warn_return_any = false # TODO: fix +warn_return_any = false # TODO: fix ignore_missing_imports = true enable_error_code = ["ignore-without-code", "redundant-expr", "truthy-bool"] [[tool.mypy.overrides]] -module = [ - "napari_matplotlib/tests/*", -] +module = ["napari_matplotlib/tests/*"] disallow_untyped_defs = false From d251d1f5766fa03a4f9036c4810539b074a099e3 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Tue, 1 Oct 2024 12:22:07 +0100 Subject: [PATCH 10/10] =?UTF-8?q?Revert=20shape=20=E2=86=92=20newshape=20a?= =?UTF-8?q?nd=20suppress=20deprecation=20warning.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pyproject.toml | 2 ++ src/napari_matplotlib/tests/helpers.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index a53b658..f76831a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,6 +14,8 @@ 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 = [ diff --git a/src/napari_matplotlib/tests/helpers.py b/src/napari_matplotlib/tests/helpers.py index e1fcb81..b00c0af 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), - shape=(int(fig.bbox.bounds[3]), int(fig.bbox.bounds[2]), -1), + newshape=(int(fig.bbox.bounds[3]), int(fig.bbox.bounds[2]), -1), ) return img_arr