Skip to content

Commit 461d106

Browse files
committed
Flatten rcParams setter logic.
1 parent 6757cec commit 461d106

File tree

1 file changed

+8
-10
lines changed

1 file changed

+8
-10
lines changed

lib/matplotlib/__init__.py

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -734,20 +734,19 @@ def _ensure_has_backend(self):
734734
dict.setdefault(self, "backend", rcsetup._auto_backend_sentinel)
735735

736736
def __setitem__(self, key, val):
737+
if (key == "backend"
738+
and val is rcsetup._auto_backend_sentinel
739+
and "backend" in self):
740+
return
737741
try:
738-
if key == 'backend':
739-
if val is rcsetup._auto_backend_sentinel:
740-
if 'backend' in self:
741-
return
742-
try:
743-
cval = self.validate[key](val)
744-
except ValueError as ve:
745-
raise ValueError(f"Key {key}: {ve}") from None
746-
self._set(key, cval)
742+
cval = self.validate[key](val)
747743
except KeyError as err:
748744
raise KeyError(
749745
f"{key} is not a valid rc parameter (see rcParams.keys() for "
750746
f"a list of valid parameters)") from err
747+
except ValueError as ve:
748+
raise ValueError(f"Key {key}: {ve}") from None
749+
self._set(key, cval)
751750

752751
def __getitem__(self, key):
753752
# In theory, this should only ever be used after the global rcParams
@@ -757,7 +756,6 @@ def __getitem__(self, key):
757756
if val is rcsetup._auto_backend_sentinel:
758757
from matplotlib import pyplot as plt
759758
plt.switch_backend(rcsetup._auto_backend_sentinel)
760-
761759
return self._get(key)
762760

763761
def _get_backend_or_none(self):

0 commit comments

Comments
 (0)