diff --git a/doc/api/next_api_changes/deprecations/21054-AL.rst b/doc/api/next_api_changes/deprecations/21054-AL.rst new file mode 100644 index 000000000000..06d491edb752 --- /dev/null +++ b/doc/api/next_api_changes/deprecations/21054-AL.rst @@ -0,0 +1,6 @@ +Deprecation of rcParams validators +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +The following rcParams validators defined in :mod:`.rcsetup` are +deprecated with no replacement: ``validate_any``, ``validate_anylist``, +``validate_fillstylelist``, ``validate_markeverylist``, ``validate_hatchlist``, +``validate_dashlist``. diff --git a/lib/matplotlib/rcsetup.py b/lib/matplotlib/rcsetup.py index 663ff4b70536..99902b7435ce 100644 --- a/lib/matplotlib/rcsetup.py +++ b/lib/matplotlib/rcsetup.py @@ -84,8 +84,12 @@ def __call__(self, s): @lru_cache def _listify_validator(scalar_validator, allow_stringlist=False, *, - n=None, doc=None): + n=None, doc=None, _deprecated=None): def f(s): + if _deprecated: + name, = (k for k, v in globals().items() if v is f) + cbook.warn_deprecated( + _deprecated, name=name, obj_type="function") if isinstance(s, str): try: val = [scalar_validator(v.strip()) for v in s.split(',') @@ -123,9 +127,10 @@ def f(s): return f +@_api.deprecated("3.8") def validate_any(s): return s -validate_anylist = _listify_validator(validate_any) +validate_anylist = _listify_validator(validate_any, _deprecated="3.8") def _validate_date(s): @@ -487,7 +492,8 @@ def _is_iterable_not_string_like(x): 'markers.fillstyle', ['full', 'left', 'right', 'bottom', 'top', 'none']) -validate_fillstylelist = _listify_validator(validate_fillstyle) +validate_fillstylelist = _listify_validator( + validate_fillstyle, _deprecated="3.8") def validate_markevery(s): @@ -524,7 +530,8 @@ def validate_markevery(s): raise TypeError("'markevery' is of an invalid type") -validate_markeverylist = _listify_validator(validate_markevery) +validate_markeverylist = _listify_validator( + validate_markevery, _deprecated="3.8") def validate_bbox(s): @@ -591,8 +598,8 @@ def validate_hatch(s): return s -validate_hatchlist = _listify_validator(validate_hatch) -validate_dashlist = _listify_validator(validate_floatlist) +validate_hatchlist = _listify_validator(validate_hatch, _deprecated="3.8") +validate_dashlist = _listify_validator(validate_floatlist, _deprecated="3.8") def _validate_minor_tick_ndivs(n): @@ -622,16 +629,16 @@ def _validate_minor_tick_ndivs(n): 'edgecolor': validate_colorlist, 'joinstyle': _listify_validator(JoinStyle), 'capstyle': _listify_validator(CapStyle), - 'fillstyle': validate_fillstylelist, + 'fillstyle': _listify_validator(validate_fillstyle), 'markerfacecolor': validate_colorlist, 'markersize': validate_floatlist, 'markeredgewidth': validate_floatlist, 'markeredgecolor': validate_colorlist, - 'markevery': validate_markeverylist, + 'markevery': _listify_validator(validate_markevery), 'alpha': validate_floatlist, 'marker': validate_stringlist, - 'hatch': validate_hatchlist, - 'dashes': validate_dashlist, + 'hatch': _listify_validator(validate_hatch), + 'dashes': _listify_validator(validate_floatlist), } _prop_aliases = { 'c': 'color', @@ -1234,7 +1241,7 @@ def _convert_validator_spec(key, conv): "path.simplify_threshold": _validate_greaterequal0_lessequal1, "path.snap": validate_bool, "path.sketch": validate_sketch, - "path.effects": validate_anylist, + "path.effects": _listify_validator(lambda s: s), # any list "agg.path.chunksize": validate_int, # 0 to disable chunking # key-mappings (multi-character mappings should be a list/tuple)