summaryrefslogtreecommitdiffstats
path: root/Lib/tempfile.py
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2001-10-29 21:46:08 (GMT)
committerTim Peters <tim.peters@gmail.com>2001-10-29 21:46:08 (GMT)
commitc57a285cb4cd61439fd3ea804184ed8a8a1ac358 (patch)
tree5d02a253374face30c3a65c4be3bee4fd39fd2d3 /Lib/tempfile.py
parente59feb5edc40a052995ed122bf67d0a8ab7ea8c2 (diff)
downloadcpython-c57a285cb4cd61439fd3ea804184ed8a8a1ac358.zip
cpython-c57a285cb4cd61439fd3ea804184ed8a8a1ac358.tar.gz
cpython-c57a285cb4cd61439fd3ea804184ed8a8a1ac358.tar.bz2
SF bug #476138: tempfile behavior across platforms
Ensure that a tempfile can be closed any number of times without error. This wasn't true on Windows.
Diffstat (limited to 'Lib/tempfile.py')
-rw-r--r--Lib/tempfile.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/Lib/tempfile.py b/Lib/tempfile.py
index f1d53db..96245d8 100644
--- a/Lib/tempfile.py
+++ b/Lib/tempfile.py
@@ -131,14 +131,16 @@ class TemporaryFileWrapper:
def __init__(self, file, path):
self.file = file
self.path = path
+ self.close_called = 0
def close(self):
- self.file.close()
- os.unlink(self.path)
+ if not self.close_called:
+ self.close_called = 1
+ self.file.close()
+ os.unlink(self.path)
def __del__(self):
- try: self.close()
- except: pass
+ self.close()
def __getattr__(self, name):
file = self.__dict__['file']