From c89db64c1713ac7b80de7a6b162cc57d7b4febd6 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Sat, 4 Apr 2020 04:17:39 -0400 Subject: [PATCH] Fix RecursionError when closing nbAgg figures. Previously, if a figure number was not in the list of managed figures, the destroy would be skipped, but now that only happens if a figure number is passed. If a figure manager is passed, then the destroy happens regardless. In nbAgg, this loops around closing/close_event and eventually calls destroy again, leading to a RecursionError. --- lib/matplotlib/_pylab_helpers.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/matplotlib/_pylab_helpers.py b/lib/matplotlib/_pylab_helpers.py index 4c95dc658bd1..907e69957ca2 100644 --- a/lib/matplotlib/_pylab_helpers.py +++ b/lib/matplotlib/_pylab_helpers.py @@ -57,6 +57,8 @@ def destroy(cls, num): manager = num if cls.figs.get(manager.num) is manager: cls.figs.pop(manager.num) + else: + return else: try: manager = cls.figs.pop(num)