mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-08-09 14:54:46 +03:00
added explicit closing file opened in `Image.open
`
This commit is contained in:
parent
d0e720929a
commit
8c75b955c1
|
@ -2239,15 +2239,21 @@ def open(fp, mode="r"):
|
||||||
opened and identified.
|
opened and identified.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
should_close = False
|
||||||
if mode != "r":
|
if mode != "r":
|
||||||
raise ValueError("bad mode %r" % mode)
|
raise ValueError("bad mode %r" % mode)
|
||||||
|
|
||||||
if isPath(fp):
|
if isPath(fp):
|
||||||
filename = fp
|
filename = fp
|
||||||
fp = builtins.open(fp, "rb")
|
fp = builtins.open(fp, "rb")
|
||||||
|
should_close = True
|
||||||
else:
|
else:
|
||||||
filename = ""
|
filename = ""
|
||||||
|
|
||||||
|
def finalize():
|
||||||
|
if should_close:
|
||||||
|
fp.close()
|
||||||
|
|
||||||
prefix = fp.read(16)
|
prefix = fp.read(16)
|
||||||
|
|
||||||
preinit()
|
preinit()
|
||||||
|
@ -2259,6 +2265,7 @@ def open(fp, mode="r"):
|
||||||
fp.seek(0)
|
fp.seek(0)
|
||||||
im = factory(fp, filename)
|
im = factory(fp, filename)
|
||||||
_decompression_bomb_check(im.size)
|
_decompression_bomb_check(im.size)
|
||||||
|
finalize()
|
||||||
return im
|
return im
|
||||||
except (SyntaxError, IndexError, TypeError):
|
except (SyntaxError, IndexError, TypeError):
|
||||||
# import traceback
|
# import traceback
|
||||||
|
@ -2274,12 +2281,14 @@ def open(fp, mode="r"):
|
||||||
fp.seek(0)
|
fp.seek(0)
|
||||||
im = factory(fp, filename)
|
im = factory(fp, filename)
|
||||||
_decompression_bomb_check(im.size)
|
_decompression_bomb_check(im.size)
|
||||||
|
finalize()
|
||||||
return im
|
return im
|
||||||
except (SyntaxError, IndexError, TypeError):
|
except (SyntaxError, IndexError, TypeError):
|
||||||
# import traceback
|
# import traceback
|
||||||
# traceback.print_exc()
|
# traceback.print_exc()
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
finalize()
|
||||||
raise IOError("cannot identify image file %r"
|
raise IOError("cannot identify image file %r"
|
||||||
% (filename if filename else fp))
|
% (filename if filename else fp))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user