diff --git a/doc/api/api_changes_3.3/deprecations.rst b/doc/api/api_changes_3.3/deprecations.rst index 680f049249e3..920e208399c1 100644 --- a/doc/api/api_changes_3.3/deprecations.rst +++ b/doc/api/api_changes_3.3/deprecations.rst @@ -426,3 +426,10 @@ future. *minor* kwarg to `.Axis.get_ticklocs` will become keyword-only ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Passing this argument positionally is deprecated. + +Case-insensitive properties +~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Normalization of upper or mixed-case property names to lowercase in +`.Artist.set` and `.Artist.update` is deprecated. In the future, property +names will be passed as is, allowing one to pass names such as *patchA* or +*UVC*. diff --git a/lib/matplotlib/artist.py b/lib/matplotlib/artist.py index 035b87fa6251..b3778c9c1bbb 100644 --- a/lib/matplotlib/artist.py +++ b/lib/matplotlib/artist.py @@ -980,7 +980,12 @@ def update(self, props): ret = [] with cbook._setattr_cm(self, eventson=False): for k, v in props.items(): - k = k.lower() + if k != k.lower(): + cbook.warn_deprecated( + "3.3", message="Case-insensitive properties were " + "deprecated in %(since)s and support will be removed " + "%(removal)s") + k = k.lower() # White list attributes we want to be able to update through # art.update, art.set, setp. if k == "axes":