Skip to content

Commit 45e11b5

Browse files
committed
Add an OpenSlideError subclass for unrecognized slide files
In 3.3 we can distinguish between an openslide_open() failure due to an unrecognized slide file and one due to corrupt/unexpected file data.
1 parent 47e2cfe commit 45e11b5

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

openslide/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
from openslide import lowlevel
3333

3434
# For the benefit of library users
35-
from openslide.lowlevel import OpenSlideError
35+
from openslide.lowlevel import OpenSlideError, OpenSlideUnsupportedFormatError
3636
from openslide._version import __version__
3737

3838
__library_version__ = lowlevel.get_version()

openslide/lowlevel.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,12 @@ class OpenSlideError(Exception):
4848
Import this from openslide rather than from openslide.lowlevel.
4949
"""
5050

51+
class OpenSlideUnsupportedFormatError(OpenSlideError):
52+
"""OpenSlide does not support the requested file.
53+
54+
Import this from openslide rather than from openslide.lowlevel.
55+
"""
56+
5157
class _OpenSlide(object):
5258
"""Wrapper class to make sure we correctly pass an OpenSlide handle."""
5359

@@ -78,7 +84,8 @@ def from_param(cls, obj):
7884
# check for errors opening an image file and wrap the resulting handle
7985
def _check_open(result, _func, _args):
8086
if result is None:
81-
raise OpenSlideError("Could not open image file")
87+
raise OpenSlideUnsupportedFormatError(
88+
"Unsupported or missing image file")
8289
slide = _OpenSlide(c_void_p(result))
8390
err = get_error(slide)
8491
if err is not None:

0 commit comments

Comments
 (0)