From 6bc8fdd34275669af9be4bc062a58b6b9af0e49c Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Fri, 11 Nov 2016 16:59:32 -0800 Subject: [PATCH] Close file after reading in ImagePalette.load() Fixes some "ResourceWarning: unclosed file ..." when running tests with warnings enabled. --- PIL/ImagePalette.py | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/PIL/ImagePalette.py b/PIL/ImagePalette.py index 3b60068bc..8bf09385c 100644 --- a/PIL/ImagePalette.py +++ b/PIL/ImagePalette.py @@ -197,23 +197,23 @@ def load(filename): # FIXME: supports GIMP gradients only - fp = open(filename, "rb") + with open(filename, "rb") as fp: - for paletteHandler in [ - GimpPaletteFile.GimpPaletteFile, - GimpGradientFile.GimpGradientFile, - PaletteFile.PaletteFile - ]: - try: - fp.seek(0) - lut = paletteHandler(fp).getpalette() - if lut: - break - except (SyntaxError, ValueError): - # import traceback - # traceback.print_exc() - pass - else: - raise IOError("cannot load palette") + for paletteHandler in [ + GimpPaletteFile.GimpPaletteFile, + GimpGradientFile.GimpGradientFile, + PaletteFile.PaletteFile + ]: + try: + fp.seek(0) + lut = paletteHandler(fp).getpalette() + if lut: + break + except (SyntaxError, ValueError): + # import traceback + # traceback.print_exc() + pass + else: + raise IOError("cannot load palette") return lut # data, rawmode