Merge pull request #1415 from wiredfool/dup_code

Dedup code in image.open
This commit is contained in:
Hugo van Kemenade 2015-09-10 19:06:35 +03:00
commit 254201cac6

View File

@ -2299,19 +2299,7 @@ def open(fp, mode="r"):
preinit()
for i in ID:
try:
factory, accept = OPEN[i]
if not accept or accept(prefix):
fp.seek(0)
im = factory(fp, filename)
_decompression_bomb_check(im.size)
return im
except (SyntaxError, IndexError, TypeError, struct.error):
logger.debug("", exc_info=True)
if init():
def _open_core(fp, filename, prefix):
for i in ID:
try:
factory, accept = OPEN[i]
@ -2322,11 +2310,20 @@ def open(fp, mode="r"):
return im
except (SyntaxError, IndexError, TypeError, struct.error):
logger.debug("", exc_info=True)
return None
im = _open_core(fp, filename, prefix)
if im is None:
if init():
im = _open_core(fp, filename, prefix)
if im:
return im
raise IOError("cannot identify image file %r"
% (filename if filename else fp))
#
# Image processing.