From fc204947e33140c5733a5cfc03aac7d26921336b Mon Sep 17 00:00:00 2001 From: Talley Lambert Date: Mon, 19 Oct 2026 19:08:26 +0200 Subject: [PATCH] fix: keep the _r suffix in the name of a reversed catalog colormap Co-Authored-By: Claude Opus 5.5 --- src/cmap/_colormap.py | 2 +- tests/test_colormap.py | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/cmap/_colormap.py b/src/cmap/_colormap.py index 8cc83f336..b681c9a11 100644 --- a/src/cmap/_colormap.py +++ b/src/cmap/_colormap.py @@ -280,7 +280,7 @@ def __init__( if isinstance(value, str): rev = value.endswith("_r") info = self.catalog()[value[:-2] if rev else value] - name = name or f"{info.namespace}:{info.name}" + name = name or f"{info.qualified_name}{'_r' if rev else ''}" category = category or info.category over = info.over if over is None else over under = info.under if under is None else under diff --git a/tests/test_colormap.py b/tests/test_colormap.py index ae7a9f3a4..4c358bfeb 100644 --- a/tests/test_colormap.py +++ b/tests/test_colormap.py @@ -116,6 +116,16 @@ def test_colorstops_reversed_does_not_mutate_source() -> None: npt.assert_array_equal(np.asarray(stops), before) +def test_r_suffix_is_kept_in_the_name() -> None: + cm = Colormap("viridis_r") + assert cm.name == "bids:viridis_r" + assert cm.identifier == "bids_viridis_r" + assert cm.identifier != Colormap("viridis").identifier + assert cm.reversed().name == "bids:viridis" + assert Colormap("viridis").reversed().name == cm.name + assert Colormap("viridis_r", name="mine").name == "mine" + + def test_construction_does_not_change_source_interpolation() -> None: stops = Colormap(["red", "blue"], interpolation="nearest").color_stops before = stops.to_lut(4).copy()