Skip to content

Commit 219ce30

Browse files
committed
Use None as a sentinel value for unmodified axes.hold in rcParams.
1 parent 403ab99 commit 219ce30

File tree

4 files changed

+18
-2
lines changed

4 files changed

+18
-2
lines changed

lib/matplotlib/__init__.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -870,8 +870,13 @@ def matplotlib_fname():
870870
}
871871

872872
_obsolete_set = set(['tk.pythoninspect', 'legend.isaxes'])
873+
874+
# The following may use a value of None to suppress the warning.
875+
_deprecated_set = set(['axes.hold']) # do NOT include in _all_deprecated
876+
873877
_all_deprecated = set(chain(_deprecated_ignore_map,
874-
_deprecated_map, _obsolete_set))
878+
_deprecated_map,
879+
_obsolete_set))
875880

876881

877882
class RcParams(dict):
@@ -887,6 +892,8 @@ class RcParams(dict):
887892
six.iteritems(defaultParams)
888893
if key not in _all_deprecated)
889894
msg_depr = "%s is deprecated and replaced with %s; please use the latter."
895+
msg_depr_set = ("%s is deprecated. Please remove it from your "
896+
"matplotlibrc and/or style files.")
890897
msg_depr_ignore = "%s is deprecated and ignored. Use %s"
891898
msg_obsolete = ("%s is obsolete. Please remove it from your matplotlibrc "
892899
"and/or style files.")
@@ -903,6 +910,8 @@ def __setitem__(self, key, val):
903910
warnings.warn(self.msg_depr % (key, alt_key))
904911
key = alt_key
905912
val = alt_val(val)
913+
elif key in _deprecated_set and val is not None:
914+
warnings.warn(self.msg_depr_set % key)
906915
elif key in _deprecated_ignore_map:
907916
alt = _deprecated_ignore_map[key]
908917
warnings.warn(self.msg_depr_ignore % (key, alt))

lib/matplotlib/axes/_base.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -540,6 +540,9 @@ def __init__(self, fig, rect,
540540
self._rasterization_zorder = None
541541

542542
self._hold = rcParams['axes.hold']
543+
if self._hold is None:
544+
self._hold = True
545+
543546
self._connected = {} # a dict from events to (id, func)
544547
self.cla()
545548
# funcs used to format x and y - fall back on major formatters

lib/matplotlib/figure.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,9 @@ def __init__(self,
342342
self.patch.set_aa(False)
343343

344344
self._hold = rcParams['axes.hold']
345+
if self._hold is None:
346+
self._hold = True
347+
345348
self.canvas = None
346349
self._suptitle = None
347350

lib/matplotlib/rcsetup.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,8 @@ def validate_bool_maybe_none(b):
147147

148148
def deprecate_axes_hold(value):
149149
if value is None:
150-
return True
150+
return None # converted to True where accessed in figure.py,
151+
# axes/_base.py
151152
warnings.warn("axes.hold is deprecated, will be removed in 3.0")
152153
return validate_bool(value)
153154

0 commit comments

Comments
 (0)