diff --git a/packages/python/plotly/_plotly_utils/colors/__init__.py b/packages/python/plotly/_plotly_utils/colors/__init__.py index 00856b782f6..84943fe3940 100644 --- a/packages/python/plotly/_plotly_utils/colors/__init__.py +++ b/packages/python/plotly/_plotly_utils/colors/__init__.py @@ -831,8 +831,8 @@ def get_colorscale(name): raise exceptions.PlotlyError(f"Colorscale {name} is not a built-in scale.") if should_reverse: - return colorscale[::-1] - return colorscale + colorscale = colorscale[::-1] + return make_colorscale(colorscale) def sample_colorscale(colorscale, samplepoints, low=0.0, high=1.0, colortype="rgb"): diff --git a/packages/python/plotly/plotly/express/colors/__init__.py b/packages/python/plotly/plotly/express/colors/__init__.py index b77c21c03be..a554558f945 100644 --- a/packages/python/plotly/plotly/express/colors/__init__.py +++ b/packages/python/plotly/plotly/express/colors/__init__.py @@ -47,4 +47,6 @@ "plotlyjs", "DEFAULT_PLOTLY_COLORS", "PLOTLY_SCALES", + "get_colorscale", + "sample_colorscale", ] diff --git a/packages/python/plotly/plotly/tests/test_core/test_colors/test_colors.py b/packages/python/plotly/plotly/tests/test_core/test_colors/test_colors.py index 230deedec2a..1842231549e 100644 --- a/packages/python/plotly/plotly/tests/test_core/test_colors/test_colors.py +++ b/packages/python/plotly/plotly/tests/test_core/test_colors/test_colors.py @@ -152,16 +152,29 @@ def test_get_colorscale(self): self.assertRaisesRegex(PlotlyError, pattern, colors.get_colorscale, name) # test non-capitalised access - self.assertEqual(colors.sequential.haline, colors.get_colorscale("haline")) + self.assertEqual( + colors.make_colorscale(colors.sequential.haline), + colors.get_colorscale("haline"), + ) # test capitalised access - self.assertEqual(colors.diverging.Earth, colors.get_colorscale("Earth")) + self.assertEqual( + colors.make_colorscale(colors.diverging.Earth), + colors.get_colorscale("Earth"), + ) # test accessing non-capitalised scale with capitalised name - self.assertEqual(colors.cyclical.mrybm, colors.get_colorscale("Mrybm")) + self.assertEqual( + colors.make_colorscale(colors.cyclical.mrybm), + colors.get_colorscale("Mrybm"), + ) # test accessing capitalised scale with non-capitalised name - self.assertEqual(colors.sequential.Viridis, colors.get_colorscale("viridis")) + self.assertEqual( + colors.make_colorscale(colors.sequential.Viridis), + colors.get_colorscale("viridis"), + ) # test accessing reversed scale self.assertEqual( - colors.diverging.Portland_r, colors.get_colorscale("portland_r") + colors.make_colorscale(colors.diverging.Portland_r), + colors.get_colorscale("portland_r"), ) def test_sample_colorscale(self): @@ -194,3 +207,7 @@ def test_sample_colorscale(self): defined_colors, samplepoints, colortype="tuple" ) self.assertEqual(expected_output, output) + + self.assertEqual( + colors.sample_colorscale("TuRbId_r", 12), colors.sequential.turbid_r, + )