diff --git a/src/cmap/_external.py b/src/cmap/_external.py index b9f8d5213..68a5bd8ce 100644 --- a/src/cmap/_external.py +++ b/src/cmap/_external.py @@ -87,10 +87,10 @@ def to_plotly(cm: Colormap) -> list[list[float | str]]: def _napari_colormap_param_names() -> set[str]: from napari.utils.colormaps import Colormap - if hasattr(Colormap, "__fields__"): - return set(Colormap.__fields__) - elif hasattr(Colormap, "model_fields"): + if hasattr(Colormap, "model_fields"): return set(Colormap.model_fields) + elif hasattr(Colormap, "__fields__"): + return set(Colormap.__fields__) return set() diff --git a/tests/test_third_party.py b/tests/test_third_party.py index c07c0cb4b..a161dac75 100644 --- a/tests/test_third_party.py +++ b/tests/test_third_party.py @@ -73,6 +73,15 @@ def test_napari(qapp: "QApplication") -> None: v.close() +def test_napari_no_deprecated_field_access() -> None: + pytest.importorskip("napari") + from cmap._external import _napari_colormap_param_names + + # the names are cached, so an earlier conversion may already have paid the warning + _napari_colormap_param_names.cache_clear() + assert CMAP.to_napari() is not None + + @pytest.mark.filterwarnings("ignore") def test_napari_extreme_colors() -> None: # nan_color/low_color/high_color were added in napari 0.6.1