Skip to content

Commit 5af6b8d

Browse files
committed
Init FigureCanvasAgg._lastKey at class-level.
This avoids the need for getattr checks. We explicitly don't do the same for FigureCanvasAgg.renderer because 1) if _lastKey has been set to a non-None value, then renderer has also been set and 2) initing renderer to e.g. None would change the possible types of a public attribute.
1 parent d73ba9e commit 5af6b8d

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

lib/matplotlib/backends/backend_agg.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,8 @@ def post_processing(image, dpi):
387387
class FigureCanvasAgg(FigureCanvasBase):
388388
# docstring inherited
389389

390+
_lastKey = None # Overwritten per-instance on the first draw.
391+
390392
def copy_from_bbox(self, bbox):
391393
renderer = self.get_renderer()
392394
return renderer.copy_from_bbox(bbox)
@@ -412,8 +414,7 @@ def draw(self):
412414
def get_renderer(self, cleared=False):
413415
w, h = self.figure.bbox.size
414416
key = w, h, self.figure.dpi
415-
reuse_renderer = (hasattr(self, "renderer")
416-
and getattr(self, "_lastKey", None) == key)
417+
reuse_renderer = (self._lastKey == key)
417418
if not reuse_renderer:
418419
self.renderer = RendererAgg(w, h, self.figure.dpi)
419420
self._lastKey = key

0 commit comments

Comments
 (0)