28
28
import numpy as np
29
29
import numpy .ma as ma
30
30
31
+ from matplotlib import colormaps as mcolormaps
31
32
from .config import rc
32
33
from .internals import ic # noqa: F401
33
34
from .internals import (
@@ -2861,8 +2862,11 @@ def _init_cmap_database():
2861
2862
database = getattr (mcm , attr )
2862
2863
if mcm .get_cmap is not _get_cmap :
2863
2864
mcm .get_cmap = _get_cmap
2864
- if mcm .register_cmap is not _register_cmap :
2865
- mcm .register_cmap = _register_cmap
2865
+ # enable backward compatibility
2866
+ if hasattr (mcm , "register_cmap" ):
2867
+ if mcm .register_cmap is not wrap_register_cmap :
2868
+ mcm .register_cmap = wrap_register_cmap
2869
+
2866
2870
if not isinstance (database , ColormapDatabase ):
2867
2871
database = {
2868
2872
key : value
@@ -2874,19 +2878,23 @@ def _init_cmap_database():
2874
2878
return database
2875
2879
2876
2880
2877
- _mpl_register_cmap = mcm .register_cmap
2881
+ def wrap_register_cmap (* args , ** kwargs ):
2882
+ # This function is merely to wrap register cmap
2883
+ # to prevent adding unnecessary trigger warnings
2884
+ original_register_cmap = mcm .register_cmap
2878
2885
2886
+ @functools .wraps (original_register_cmap ) # noqa: E302
2887
+ def _register_cmap (* args , ** kwargs ):
2888
+ """
2889
+ Monkey patch for `~matplotlib.cm.register_cmap`. Ignores warning
2890
+ message when re-registering existing colormaps. This is unnecessary
2891
+ and triggers 100 warnings when importing seaborn.
2892
+ """
2893
+ with warnings .catch_warnings ():
2894
+ warnings .simplefilter ("ignore" , UserWarning )
2895
+ return mcm .register_cmap (* args , ** kwargs )
2879
2896
2880
- @functools .wraps (_mpl_register_cmap ) # noqa: E302
2881
- def _register_cmap (* args , ** kwargs ):
2882
- """
2883
- Monkey patch for `~matplotlib.cm.register_cmap`. Ignores warning
2884
- message when re-registering existing colormaps. This is unnecessary
2885
- and triggers 100 warnings when importing seaborn.
2886
- """
2887
- with warnings .catch_warnings ():
2888
- warnings .simplefilter ("ignore" , UserWarning )
2889
- return _mpl_register_cmap (* args , ** kwargs )
2897
+ return wrapped_register_cmap
2890
2898
2891
2899
2892
2900
@functools .wraps (mcm .get_cmap )
0 commit comments