diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2015-03-20 14:12:43 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2015-03-20 14:12:43 (GMT) |
commit | 000391b7de634635b493b680f14b907d767d8583 (patch) | |
tree | c6ecce3684f430e9877c6859de1e78ad95dd6d72 /Lib/tempfile.py | |
parent | 268225f154dbd05f1967129d78609cc25c791e3f (diff) | |
parent | d83b7c2df4439b678bf7e372f8c9bbaff2907689 (diff) | |
download | cpython-000391b7de634635b493b680f14b907d767d8583.zip cpython-000391b7de634635b493b680f14b907d767d8583.tar.gz cpython-000391b7de634635b493b680f14b907d767d8583.tar.bz2 |
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.py | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/Lib/tempfile.py b/Lib/tempfile.py index 0bfcbf1..07033c6 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, |