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

Skip to content

Commit b5daa3e

Browse files
committed
Update delitem
1 parent fd1d107 commit b5daa3e

File tree

1 file changed

+7
-19
lines changed

1 file changed

+7
-19
lines changed

lib/matplotlib/__init__.py

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -794,12 +794,16 @@ def _get_backend_or_none(self):
794794
return None if backend is rcsetup._auto_backend_sentinel else backend
795795

796796
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)")
797801
try:
798802
del self._rcvalues[key]
799803
except KeyError as err:
800804
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
803807

804808
def __contains__(self, key):
805809
return key in self._rcvalues
@@ -824,22 +828,6 @@ def __repr__(self):
824828
def __str__(self):
825829
return '\n'.join(map('{0[0]}: {0[1]}'.format, sorted(self._rcvalues.items())))
826830

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-
843831
@_api.deprecated("3.8")
844832
def clear(self):
845833
pass
@@ -1037,8 +1025,8 @@ def rc_params_from_file(fname, fail_on_error=False, use_default_template=True):
10371025
# (resulting in a normal `#backend: foo` line) in which case we should *not*
10381026
# fill in _auto_backend_sentinel.
10391027
rcParams.update(_rc_params_in_file(matplotlib_fname()))
1040-
rcParams._rcvalues = rcParams._rcvalues.new_child()
10411028
rcParams.setdefault("backend", rcsetup._auto_backend_sentinel)
1029+
rcParams._rcvalues = rcParams._rcvalues.new_child()
10421030
rcParamsOrig = rcParams.copy()
10431031
with _api.suppress_matplotlib_deprecation_warning():
10441032
# This also checks that all rcParams are indeed listed in the template.

0 commit comments

Comments
 (0)