Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 8bd7cd6

Browse files
committed
Merge pull request #4719 from tacaswell/mnt_rcparams_dep
ENH: add inverse function to _deprecated_map
2 parents 4394fc7 + 08ab9aa commit 8bd7cd6

File tree

1 file changed

+21
-11
lines changed

1 file changed

+21
-11
lines changed

lib/matplotlib/__init__.py

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -813,16 +813,19 @@ def matplotlib_fname():
813813
return fname
814814

815815

816+
# names of keys to deprecate
817+
# the values are a tuple of (new_name, f_old_2_new, f_new_2_old)
818+
# the inverse function may be `None`
816819
_deprecated_map = {
817-
'text.fontstyle': ('font.style', lambda x: x),
818-
'text.fontangle': ('font.style', lambda x: x),
819-
'text.fontvariant': ('font.variant', lambda x: x),
820-
'text.fontweight': ('font.weight', lambda x: x),
821-
'text.fontsize': ('font.size', lambda x: x),
822-
'tick.size': ('tick.major.size', lambda x: x),
820+
'text.fontstyle': ('font.style', lambda x: x, None),
821+
'text.fontangle': ('font.style', lambda x: x, None),
822+
'text.fontvariant': ('font.variant', lambda x: x, None),
823+
'text.fontweight': ('font.weight', lambda x: x, None),
824+
'text.fontsize': ('font.size', lambda x: x, None),
825+
'tick.size': ('tick.major.size', lambda x: x, None),
823826
'svg.embed_char_paths': ('svg.fonttype',
824-
lambda x: "path" if x else "none"),
825-
'savefig.extension': ('savefig.format', lambda x: x),
827+
lambda x: "path" if x else "none", None),
828+
'savefig.extension': ('savefig.format', lambda x: x, None),
826829
}
827830

828831
_deprecated_ignore_map = {
@@ -856,7 +859,7 @@ def __init__(self, *args, **kwargs):
856859
def __setitem__(self, key, val):
857860
try:
858861
if key in _deprecated_map:
859-
alt_key, alt_val = _deprecated_map[key]
862+
alt_key, alt_val, inverse_alt = _deprecated_map[key]
860863
warnings.warn(self.msg_depr % (key, alt_key))
861864
key = alt_key
862865
val = alt_val(val)
@@ -874,15 +877,22 @@ def __setitem__(self, key, val):
874877
See rcParams.keys() for a list of valid parameters.' % (key,))
875878

876879
def __getitem__(self, key):
880+
inverse_alt = None
877881
if key in _deprecated_map:
878-
alt_key, alt_val = _deprecated_map[key]
882+
alt_key, alt_val, inverse_alt = _deprecated_map[key]
879883
warnings.warn(self.msg_depr % (key, alt_key))
880884
key = alt_key
885+
881886
elif key in _deprecated_ignore_map:
882887
alt = _deprecated_ignore_map[key]
883888
warnings.warn(self.msg_depr_ignore % (key, alt))
884889
key = alt
885-
return dict.__getitem__(self, key)
890+
891+
val = dict.__getitem__(self, key)
892+
if inverse_alt is not None:
893+
return inverse_alt(val)
894+
else:
895+
return val
886896

887897
# http://stackoverflow.com/questions/2390827
888898
# (how-to-properly-subclass-dict-and-override-get-set)

0 commit comments

Comments
 (0)