diff --git a/lib/matplotlib/cbook/deprecation.py b/lib/matplotlib/cbook/deprecation.py index b93a5ca94f8f..42809c3e8f7f 100644 --- a/lib/matplotlib/cbook/deprecation.py +++ b/lib/matplotlib/cbook/deprecation.py @@ -190,6 +190,36 @@ def finalize(wrapper, new_doc): obj.__doc__ = new_doc obj.__init__ = wrapper return obj + + elif isinstance(obj, property): + obj_type = "attribute" + func = None + name = name or obj.fget.__name__ + old_doc = obj.__doc__ + + class _deprecated_property(property): + def __get__(self, instance, owner): + if instance is not None: + from . import _warn_external + _warn_external(message, category) + return super().__get__(instance, owner) + + def __set__(self, instance, value): + if instance is not None: + from . import _warn_external + _warn_external(message, category) + return super().__set__(instance, value) + + def __delete__(self, instance): + if instance is not None: + from . import _warn_external + _warn_external(message, category) + return super().__delete__(instance) + + def finalize(_, new_doc): + return _deprecated_property( + fget=obj.fget, fset=obj.fset, fdel=obj.fdel, doc=new_doc) + else: obj_type = "function" if isinstance(obj, classmethod):