Skip to content

Commit d83b7c2

Browse files
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.
1 parent f0c6cd3 commit d83b7c2

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

Lib/tempfile.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -426,9 +426,11 @@ def close(self):
426426

427427
# iter() doesn't use __getattr__ to find the __iter__ method
428428
def __iter__(self):
429-
# don't return iter(self.file), but yield from it to avoid closing
430-
# file as long as it's being used as iterator, see issue #23000
431-
yield from iter(self.file)
429+
# Don't return iter(self.file), but yield from it to avoid closing
430+
# file as long as it's being used as iterator, see issue #23000.
431+
# XXX Also don't use "yield from"!
432+
for line in self.file:
433+
yield line
432434

433435

434436
def NamedTemporaryFile(mode='w+b', buffering=-1, encoding=None,

0 commit comments

Comments
 (0)