From 4eb914f2643798b857f90ccd0ae47a1d95755b29 Mon Sep 17 00:00:00 2001 From: Carlos Barbero Date: Fri, 30 Jan 2026 10:20:09 -0300 Subject: [PATCH] fix: ensure global diagram context is cleared if rendering fails --- diagrams/__init__.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/diagrams/__init__.py b/diagrams/__init__.py index db3203c8..c9517dc5 100644 --- a/diagrams/__init__.py +++ b/diagrams/__init__.py @@ -205,10 +205,13 @@ class Diagram: return self def __exit__(self, exc_type, exc_value, traceback): - self.render() - # Remove the graphviz file leaving only the image. - os.remove(self.filename) - setdiagram(None) + try: + self.render() + finally: + if os.path.exists(self.filename): + # Remove the graphviz file leaving only the image. + os.remove(self.filename) + setdiagram(None) def _repr_png_(self): return self.dot.pipe(format="png")