Skip to content

Commit 7d081c1

Browse files
committed
ImageSlide: Close underlying PIL.Image if we opened it ourselves
Fixes "unclosed file" ResourceWarnings.
1 parent a0b44f9 commit 7d081c1

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

openslide/__init__.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,8 +267,10 @@ def __init__(self, file):
267267
file can be a filename or a PIL.Image."""
268268
AbstractSlide.__init__(self)
269269
if isinstance(file, Image.Image):
270+
self._close = False
270271
self._image = file
271272
else:
273+
self._close = True
272274
self._image = Image.open(file)
273275

274276
@classmethod
@@ -288,6 +290,11 @@ def detect_format(cls, filename):
288290

289291
def close(self):
290292
"""Close the slide object."""
293+
if self._close:
294+
if hasattr(self._image, 'close'):
295+
# Pillow >= 2.5.0
296+
self._image.close()
297+
self._close = False
291298
self._image = None
292299

293300
@property

0 commit comments

Comments
 (0)