From e8cbace3d0a0f6dfe90f792eaa9b81e5a384b22c Mon Sep 17 00:00:00 2001 From: Christoph Gohlke Date: Thu, 4 Dec 2014 13:20:43 -0800 Subject: [PATCH] Don't close GzipFile before it is used --- lib/matplotlib/backends/backend_cairo.py | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/lib/matplotlib/backends/backend_cairo.py b/lib/matplotlib/backends/backend_cairo.py index 274afbee9329..56ec4d87a83d 100644 --- a/lib/matplotlib/backends/backend_cairo.py +++ b/lib/matplotlib/backends/backend_cairo.py @@ -475,17 +475,10 @@ def _save (self, fo, format, **kwargs): raise RuntimeError ('cairo has not been compiled with SVG ' 'support enabled') if format == 'svgz': - filename = fo if is_string_like(fo): - fo = open(fo, 'wb') - close = True + fo = gzip.GzipFile(fo, 'wb') else: - close = False - try: fo = gzip.GzipFile(None, 'wb', fileobj=fo) - finally: - if close: - fo.close() surface = cairo.SVGSurface (fo, width_in_points, height_in_points) else: warnings.warn ("unknown format: %s" % format) @@ -523,6 +516,8 @@ def _save (self, fo, format, **kwargs): ctx.show_page() surface.finish() + if format == 'svgz': + fo.close() FigureCanvas = FigureCanvasCairo