Blob Blame History Raw
From 647d5f813a0b2371da7acdd7d5f3cf0953670c03 Mon Sep 17 00:00:00 2001
From: Tomek <t.pazurkiewicz@gmail.com>
Date: Wed, 11 Jun 2014 13:49:16 +0200
Subject: [PATCH 13/14] Fix closing temporary files.

output_file descriptor was never closed.

(cherry picked from commit 3ca7a31fa01766c2f0ae2fac1ef974ea2c0e08e0)

diff --git a/src/webassets/filter/__init__.py b/src/webassets/filter/__init__.py
index a8743c8..19bd781 100644
--- a/src/webassets/filter/__init__.py
+++ b/src/webassets/filter/__init__.py
@@ -460,7 +460,8 @@ class ExternalTool(six.with_metaclass(ExternalToolMetaclass, Filter)):
         class tempfile_on_demand(object):
             def __repr__(self):
                 if not hasattr(self, 'filename'):
-                    self.fd, self.filename = tempfile.mkstemp()
+                    fd, self.filename = tempfile.mkstemp()
+                    os.close(fd)
                 return self.filename
 
             @property
@@ -483,7 +484,7 @@ class ExternalTool(six.with_metaclass(ExternalToolMetaclass, Filter)):
                 if not data:
                     raise ValueError(
                         '{input} placeholder given, but no data passed')
-                with os.fdopen(input_file.fd, 'wb') as f:
+                with open(input_file.filename, 'wb') as f:
                     f.write(data)
                     # No longer pass to stdin
                     data = None
-- 
1.9.3