summaryrefslogtreecommitdiff
path: root/Lib/tempfile.py
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2015-03-20 16:12:43 +0200
committerSerhiy Storchaka <storchaka@gmail.com>2015-03-20 16:12:43 +0200
commit000391b7de634635b493b680f14b907d767d8583 (patch)
treec6ecce3684f430e9877c6859de1e78ad95dd6d72 /Lib/tempfile.py
parent268225f154dbd05f1967129d78609cc25c791e3f (diff)
parentd83b7c2df4439b678bf7e372f8c9bbaff2907689 (diff)
downloadcpython-git-000391b7de634635b493b680f14b907d767d8583.tar.gz
Issue #23700: NamedTemporaryFile iterator closed underlied file object in
some circunstances while NamedTemporaryFile object was living. This causes failing test_csv. Changed the implementation of NamedTemporaryFile.__iter__ to make tests passed.
Diffstat (limited to 'Lib/tempfile.py')
-rw-r--r--Lib/tempfile.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/Lib/tempfile.py b/Lib/tempfile.py
index 0bfcbf1196..07033c6ca8 100644
--- a/Lib/tempfile.py
+++ b/Lib/tempfile.py
@@ -426,9 +426,11 @@ class _TemporaryFileWrapper:
# iter() doesn't use __getattr__ to find the __iter__ method
def __iter__(self):
- # don't return iter(self.file), but yield from it to avoid closing
- # file as long as it's being used as iterator, see issue #23000
- yield from iter(self.file)
+ # Don't return iter(self.file), but yield from it to avoid closing
+ # file as long as it's being used as iterator, see issue #23000.
+ # XXX Also don't use "yield from"!
+ for line in self.file:
+ yield line
def NamedTemporaryFile(mode='w+b', buffering=-1, encoding=None,