(Merge 3.5) Issue #23840: tokenize.open() now closes the temporary binary file

on error to fix a resource warning.
This commit is contained in:
Victor Stinner 2015-05-26 00:46:44 +02:00
commit 24d262af0b
3 changed files with 21 additions and 6 deletions

View file

@ -435,11 +435,15 @@ def open(filename):
detect_encoding().
"""
buffer = _builtin_open(filename, 'rb')
encoding, lines = detect_encoding(buffer.readline)
buffer.seek(0)
text = TextIOWrapper(buffer, encoding, line_buffering=True)
text.mode = 'r'
return text
try:
encoding, lines = detect_encoding(buffer.readline)
buffer.seek(0)
text = TextIOWrapper(buffer, encoding, line_buffering=True)
text.mode = 'r'
return text
except:
buffer.close()
raise
def tokenize(readline):