From c8938bbf748f70f73caa3c6f3072817215ae96f2 Mon Sep 17 00:00:00 2001 From: Antony Lee Date: Thu, 16 Dec 2021 20:41:09 +0100 Subject: [PATCH] Slightly tighten the _get_layout_cache_key API. _get_layout_cache_key is only ever called from _get_layout, which always passes a renderer arg which is never None (_get_layout calls `renderer.get_text_width_height_descent immediately after). So we can make the `renderer` arg required and not check for None. Also, get_unitless_position() can be directly used instead of unpacking it. --- lib/matplotlib/text.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/matplotlib/text.py b/lib/matplotlib/text.py index c4b3a9184a3a..95daad0f33b1 100644 --- a/lib/matplotlib/text.py +++ b/lib/matplotlib/text.py @@ -272,15 +272,14 @@ def update_from(self, other): self._linespacing = other._linespacing self.stale = True - def _get_layout_cache_key(self, renderer=None): + def _get_layout_cache_key(self, renderer): """ Return a hashable tuple of properties that lets `_get_layout` know whether a previously computed layout can be reused. """ - x, y = self.get_unitless_position() - renderer = renderer or self._renderer return ( - x, y, self.get_text(), hash(self._fontproperties), + self.get_unitless_position(), self.get_text(), + hash(self._fontproperties), self._verticalalignment, self._horizontalalignment, self._linespacing, self._rotation, self._rotation_mode, self._transform_rotates_text,