@@ -604,25 +604,12 @@ def gen_candidates():
604
604
"install is broken" )
605
605
606
606
607
- # rcParams deprecated and automatically mapped to another key.
608
- # Values are tuples of (version, new_name, f_old2new, f_new2old).
609
- _deprecated_map = {}
610
-
611
- # rcParams deprecated; some can manually be mapped to another key.
612
- # Values are tuples of (version, new_name_or_None).
613
- _deprecated_ignore_map = {
614
- }
615
-
616
- # rcParams deprecated; can use None to suppress warnings; remain actually
617
- # listed in the rcParams (not included in _all_deprecated).
618
- # Values are tuples of (version,)
619
- _deprecated_remain_as_none = {
607
+ # Deprecated rcParams, with kwargs to warn_deprecated. Must at least specify
608
+ # the 'since' key.
609
+ _deprecated_rcs = {
620
610
}
621
611
622
612
623
- _all_deprecated = {* _deprecated_map , * _deprecated_ignore_map }
624
-
625
-
626
613
class RcParams (MutableMapping , dict ):
627
614
"""
628
615
A dictionary object including validation.
@@ -636,34 +623,20 @@ class RcParams(MutableMapping, dict):
636
623
"""
637
624
638
625
validate = {key : converter
639
- for key , (default , converter ) in defaultParams .items ()
640
- if key not in _all_deprecated }
626
+ for key , (default , converter ) in defaultParams .items ()}
641
627
642
628
# validate values on the way in
643
629
def __init__ (self , * args , ** kwargs ):
644
630
self .update (* args , ** kwargs )
645
631
646
632
def __setitem__ (self , key , val ):
633
+ if (key == 'backend' and val is rcsetup ._auto_backend_sentinel
634
+ and 'backend' in self ):
635
+ return
636
+ if key in _deprecated_rcs :
637
+ cbook .warn_deprecated (
638
+ ** {"name" : key , "obj_type" : "rcparam" , ** _deprecated_rcs [key ]})
647
639
try :
648
- if key in _deprecated_map :
649
- version , alt_key , alt_val , inverse_alt = _deprecated_map [key ]
650
- cbook .warn_deprecated (
651
- version , name = key , obj_type = "rcparam" , alternative = alt_key )
652
- key = alt_key
653
- val = alt_val (val )
654
- elif key in _deprecated_remain_as_none and val is not None :
655
- version , = _deprecated_remain_as_none [key ]
656
- cbook .warn_deprecated (
657
- version , name = key , obj_type = "rcparam" )
658
- elif key in _deprecated_ignore_map :
659
- version , alt_key = _deprecated_ignore_map [key ]
660
- cbook .warn_deprecated (
661
- version , name = key , obj_type = "rcparam" , alternative = alt_key )
662
- return
663
- elif key == 'backend' :
664
- if val is rcsetup ._auto_backend_sentinel :
665
- if 'backend' in self :
666
- return
667
640
try :
668
641
cval = self .validate [key ](val )
669
642
except ValueError as ve :
@@ -675,24 +648,14 @@ def __setitem__(self, key, val):
675
648
f"a list of valid parameters)" )
676
649
677
650
def __getitem__ (self , key ):
678
- if key in _deprecated_map :
679
- version , alt_key , alt_val , inverse_alt = _deprecated_map [key ]
680
- cbook .warn_deprecated (
681
- version , name = key , obj_type = "rcparam" , alternative = alt_key )
682
- return inverse_alt (dict .__getitem__ (self , alt_key ))
683
-
684
- elif key in _deprecated_ignore_map :
685
- version , alt_key = _deprecated_ignore_map [key ]
686
- cbook .warn_deprecated (
687
- version , name = key , obj_type = "rcparam" , alternative = alt_key )
688
- return dict .__getitem__ (self , alt_key ) if alt_key else None
689
-
690
- elif key == "backend" :
651
+ if key == "backend" :
691
652
val = dict .__getitem__ (self , key )
692
653
if val is rcsetup ._auto_backend_sentinel :
693
654
from matplotlib import pyplot as plt
694
655
plt .switch_backend (rcsetup ._auto_backend_sentinel )
695
-
656
+ if key in _deprecated_rcs :
657
+ cbook .warn_deprecated (
658
+ ** {"name" : key , "obj_type" : "rcparam" , ** _deprecated_rcs [key ]})
696
659
return dict .__getitem__ (self , key )
697
660
698
661
def __repr__ (self ):
@@ -812,11 +775,6 @@ def _rc_params_in_file(fname, fail_on_error=False):
812
775
error_details = _error_details_fmt % (line_no , line , fname )
813
776
_log .warning ('Bad val %r on %s\n \t %s' ,
814
777
val , error_details , msg )
815
- elif key in _deprecated_ignore_map :
816
- version , alt_key = _deprecated_ignore_map [key ]
817
- cbook .warn_deprecated (
818
- version , name = key , alternative = alt_key ,
819
- addendum = "Please update your matplotlibrc." )
820
778
else :
821
779
version = 'master' if '.post' in __version__ else f'v{ __version__ } '
822
780
print (f"""
@@ -850,8 +808,7 @@ def rc_params_from_file(fname, fail_on_error=False, use_default_template=True):
850
808
851
809
iter_params = defaultParams .items ()
852
810
with cbook ._suppress_matplotlib_deprecation_warning ():
853
- config = RcParams ([(key , default ) for key , (default , _ ) in iter_params
854
- if key not in _all_deprecated ])
811
+ config = RcParams ((key , default ) for key , (default , _ ) in iter_params )
855
812
config .update (config_from_file )
856
813
857
814
if config ['datapath' ] is None :
@@ -876,9 +833,8 @@ def rc_params_from_file(fname, fail_on_error=False, use_default_template=True):
876
833
877
834
with cbook ._suppress_matplotlib_deprecation_warning ():
878
835
rcParamsOrig = RcParams (rcParams .copy ())
879
- rcParamsDefault = RcParams ([(key , default ) for key , (default , converter ) in
880
- defaultParams .items ()
881
- if key not in _all_deprecated ])
836
+ rcParamsDefault = RcParams (
837
+ (key , default ) for key , (default , converter ) in defaultParams .items ())
882
838
883
839
if rcParams ['axes.formatter.use_locale' ]:
884
840
locale .setlocale (locale .LC_ALL , '' )
0 commit comments