From eb7fdfde2d795031cf8a662a396354d2a0c48701 Mon Sep 17 00:00:00 2001 From: Antony Lee Date: Sun, 6 Feb 2022 15:04:43 +0100 Subject: [PATCH] Make emit and auto args of set_{x,y,z}lim keyword only. This should help with later improving argument checking in the setters, e.g. to make `set_xlim(3)` error out (requiring `set_xlim(left=3)`), as that is likely a logic error. --- doc/api/next_api_changes/deprecations/22415-AL.rst | 4 ++++ lib/matplotlib/axes/_base.py | 2 ++ lib/matplotlib/projections/polar.py | 5 ++++- lib/mpl_toolkits/mplot3d/axes3d.py | 1 + 4 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 doc/api/next_api_changes/deprecations/22415-AL.rst diff --git a/doc/api/next_api_changes/deprecations/22415-AL.rst b/doc/api/next_api_changes/deprecations/22415-AL.rst new file mode 100644 index 000000000000..4991834136ef --- /dev/null +++ b/doc/api/next_api_changes/deprecations/22415-AL.rst @@ -0,0 +1,4 @@ +*emit* and *auto* parameters of ``set_xlim``, ``set_ylim``, ``set_zlim``, ``set_rlim`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Passing these parameters positionally is deprecated; they will become +keyword-only in a future release. diff --git a/lib/matplotlib/axes/_base.py b/lib/matplotlib/axes/_base.py index 64b34f3dc3cd..61c1af78ea5a 100644 --- a/lib/matplotlib/axes/_base.py +++ b/lib/matplotlib/axes/_base.py @@ -3625,6 +3625,7 @@ def _validate_converted_limits(self, limit, convert): raise ValueError("Axis limits cannot be NaN or Inf") return converted_limit + @_api.make_keyword_only("3.6", "emit") def set_xlim(self, left=None, right=None, emit=True, auto=False, *, xmin=None, xmax=None): """ @@ -3897,6 +3898,7 @@ def get_ylim(self): """ return tuple(self.viewLim.intervaly) + @_api.make_keyword_only("3.6", "emit") def set_ylim(self, bottom=None, top=None, emit=True, auto=False, *, ymin=None, ymax=None): """ diff --git a/lib/matplotlib/projections/polar.py b/lib/matplotlib/projections/polar.py index 924dd22fbe61..b730bc70ac34 100644 --- a/lib/matplotlib/projections/polar.py +++ b/lib/matplotlib/projections/polar.py @@ -1172,6 +1172,7 @@ def get_rorigin(self): def get_rsign(self): return np.sign(self._originViewLim.y1 - self._originViewLim.y0) + @_api.make_keyword_only("3.6", "emit") def set_rlim(self, bottom=None, top=None, emit=True, auto=False, **kwargs): """ See `~.polar.PolarAxes.set_ylim`. @@ -1191,6 +1192,7 @@ def set_rlim(self, bottom=None, top=None, emit=True, auto=False, **kwargs): return self.set_ylim(bottom=bottom, top=top, emit=emit, auto=auto, **kwargs) + @_api.make_keyword_only("3.6", "emit") def set_ylim(self, bottom=None, top=None, emit=True, auto=False, *, ymin=None, ymax=None): """ @@ -1227,7 +1229,8 @@ def set_ylim(self, bottom=None, top=None, emit=True, auto=False, bottom, top : (float, float) The new y-axis limits in data coordinates. """ - return super().set_ylim(bottom, top, emit, auto, ymin=ymin, ymax=ymax) + return super().set_ylim( + bottom, top, emit=emit, auto=auto, ymin=ymin, ymax=ymax) def get_rlabel_position(self): """ diff --git a/lib/mpl_toolkits/mplot3d/axes3d.py b/lib/mpl_toolkits/mplot3d/axes3d.py index f96b16f7a167..3996ca906d67 100644 --- a/lib/mpl_toolkits/mplot3d/axes3d.py +++ b/lib/mpl_toolkits/mplot3d/axes3d.py @@ -660,6 +660,7 @@ def get_w_lims(self): return minx, maxx, miny, maxy, minz, maxz # set_xlim, set_ylim are directly inherited from base Axes. + @_api.make_keyword_only("3.6", "emit") def set_zlim(self, bottom=None, top=None, emit=True, auto=False, *, zmin=None, zmax=None): """