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