@@ -794,12 +794,16 @@ def _get_backend_or_none(self):
794
794
return None if backend is rcsetup ._auto_backend_sentinel else backend
795
795
796
796
def __delitem__ (self , key ):
797
+ if key not in self .validate :
798
+ raise KeyError (
799
+ f"{ key } is not a valid rc parameter (see rcParams.keys() for "
800
+ f"a list of valid parameters)" )
797
801
try :
798
802
del self ._rcvalues [key ]
799
803
except KeyError as err :
800
804
raise KeyError (
801
- f"{ key } is not a valid rc parameter (see rcParams.keys() for "
802
- f"a list of valid parameters)" ) from err
805
+ f"No custom value set for { key } . Cannot delete default value. "
806
+ ) from err
803
807
804
808
def __contains__ (self , key ):
805
809
return key in self ._rcvalues
@@ -824,22 +828,6 @@ def __repr__(self):
824
828
def __str__ (self ):
825
829
return '\n ' .join (map ('{0[0]}: {0[1]}' .format , sorted (self ._rcvalues .items ())))
826
830
827
- def pop (self , key ):
828
- keys , depth = self ._split_key (key )
829
- if depth == 1 :
830
- if key in self ._single_key_set :
831
- return self ._namespace_mapping ["default" ][key ]
832
- else :
833
- raise KeyError (
834
- f"{ key } is not a valid rc parameter (see rcParams.keys() for "
835
- f"a list of valid parameters)" )
836
- elif depth == 2 :
837
- return self ._namespace_mapping [keys [0 ]].pop (keys [1 ])
838
-
839
- def popitem (self ):
840
- raise NotImplementedError (
841
- "popitem is not implemented for RcParams." )
842
-
843
831
@_api .deprecated ("3.8" )
844
832
def clear (self ):
845
833
pass
@@ -1037,8 +1025,8 @@ def rc_params_from_file(fname, fail_on_error=False, use_default_template=True):
1037
1025
# (resulting in a normal `#backend: foo` line) in which case we should *not*
1038
1026
# fill in _auto_backend_sentinel.
1039
1027
rcParams .update (_rc_params_in_file (matplotlib_fname ()))
1040
- rcParams ._rcvalues = rcParams ._rcvalues .new_child ()
1041
1028
rcParams .setdefault ("backend" , rcsetup ._auto_backend_sentinel )
1029
+ rcParams ._rcvalues = rcParams ._rcvalues .new_child ()
1042
1030
rcParamsOrig = rcParams .copy ()
1043
1031
with _api .suppress_matplotlib_deprecation_warning ():
1044
1032
# This also checks that all rcParams are indeed listed in the template.
0 commit comments