File tree Expand file tree Collapse file tree 3 files changed +18
-13
lines changed
doc/api/prev_api_changes/api_changes_3.6.0 Expand file tree Collapse file tree 3 files changed +18
-13
lines changed Original file line number Diff line number Diff line change @@ -57,8 +57,7 @@ functions have been marked for pending deprecation:
5757
5858 **Added 3.6.1 ** Use `matplotlib.cm.ColormapRegistry.get_cmap ` if you
5959 have a string, `None ` or a `matplotlib.colors.Colormap ` object that you want
60- to convert to a `matplotlib.colors.Colormap ` instance. Raises `KeyError `
61- rather than `ValueError ` for missing strings.
60+ to convert to a `matplotlib.colors.Colormap ` instance.
6261- ``matplotlib.cm.register_cmap ``; use `matplotlib.colormaps.register
6362 <.ColormapRegistry.register> ` instead
6463- ``matplotlib.cm.unregister_cmap ``; use `matplotlib.colormaps.unregister
Original file line number Diff line number Diff line change @@ -202,10 +202,6 @@ def get_cmap(self, cmap):
202202 Returns
203203 -------
204204 Colormap
205-
206- Raises
207- ------
208- KeyError
209205 """
210206 # get the default color map
211207 if cmap is None :
@@ -214,9 +210,14 @@ def get_cmap(self, cmap):
214210 # if the user passed in a Colormap, simply return it
215211 if isinstance (cmap , colors .Colormap ):
216212 return cmap
217-
218- # otherwise, it must be a string so look it up
219- return self [cmap ]
213+ if isinstance (cmap , str ):
214+ _api .check_in_list (sorted (_colormaps ), cmap = cmap )
215+ # otherwise, it must be a string so look it up
216+ return self [cmap ]
217+ raise TypeError (
218+ 'get_cmap expects None or an instance of a str or Colormap . ' +
219+ f'you passed { cmap !r} of type { type (cmap )} '
220+ )
220221
221222
222223# public access to the colormaps should be via `matplotlib.colormaps`. For now,
Original file line number Diff line number Diff line change @@ -111,18 +111,23 @@ def test_register_cmap():
111111
112112def test_colormaps_get_cmap ():
113113 cr = mpl .colormaps
114- new_cm = mcolors .ListedColormap (cr ["viridis" ].colors , name = 'v2' )
115114
116- # check None, str, and Colormap pass
115+ # check str, and Colormap pass
117116 assert cr .get_cmap ('plasma' ) == cr ["plasma" ]
118117 assert cr .get_cmap (cr ["magma" ]) == cr ["magma" ]
119118
120- # check default default
119+ # check default
121120 assert cr .get_cmap (None ) == cr [mpl .rcParams ['image.cmap' ]]
121+
122+ # check ValueError on bad name
122123 bad_cmap = 'AardvarksAreAwkward'
123- with pytest .raises (KeyError , match = bad_cmap ):
124+ with pytest .raises (ValueError , match = bad_cmap ):
124125 cr .get_cmap (bad_cmap )
125126
127+ # check TypeError on bad type
128+ with pytest .raises (TypeError , match = 'object' ):
129+ cr .get_cmap (object ())
130+
126131
127132def test_double_register_builtin_cmap ():
128133 name = "viridis"
You can’t perform that action at this time.
0 commit comments