aboutsummaryrefslogtreecommitdiffstats
path: root/bsie/reader
diff options
context:
space:
mode:
authorMatthias Baumgartner <dev@igsor.net>2023-01-16 20:53:39 +0100
committerMatthias Baumgartner <dev@igsor.net>2023-01-16 20:53:39 +0100
commitafd165000c1661a9cca117a4844ad3f89d926fdb (patch)
tree865a1077c56d2f373af9cdc1b800516fdd0695f0 /bsie/reader
parent3f93be488638fdf6668e0e03e2b1634bb969ca80 (diff)
downloadbsie-afd165000c1661a9cca117a4844ad3f89d926fdb.tar.gz
bsie-afd165000c1661a9cca117a4844ad3f89d926fdb.tar.bz2
bsie-afd165000c1661a9cca117a4844ad3f89d926fdb.zip
unsupported file format exception
Diffstat (limited to 'bsie/reader')
-rw-r--r--bsie/reader/chain.py7
-rw-r--r--bsie/reader/image/_pillow.py2
-rw-r--r--bsie/reader/image/_raw.py2
3 files changed, 8 insertions, 3 deletions
diff --git a/bsie/reader/chain.py b/bsie/reader/chain.py
index 8e900e1..db7c2d5 100644
--- a/bsie/reader/chain.py
+++ b/bsie/reader/chain.py
@@ -73,13 +73,16 @@ class ReaderChain(base.Reader, typing.Generic[T_CONTENT]):
return hash((super().__hash__(), self._children))
def __call__(self, path: str) -> T_CONTENT:
+ raise_error = errors.UnsupportedFileFormatError
for child in self._children:
try:
return child(path)
+ except errors.UnsupportedFileFormatError:
+ pass
except errors.ReaderError:
# child cannot read the file, skip.
- pass
+ raise_error = errors.ReaderError # type: ignore [assignment] # mypy is confused
- raise errors.ReaderError(path)
+ raise raise_error(path)
## EOF ##
diff --git a/bsie/reader/image/_pillow.py b/bsie/reader/image/_pillow.py
index ee0662d..3144509 100644
--- a/bsie/reader/image/_pillow.py
+++ b/bsie/reader/image/_pillow.py
@@ -31,6 +31,8 @@ class PillowImage(base.Reader):
try:
# open file with PIL
return PIL.Image.open(path)
+ except PIL.UnidentifiedImageError as err:
+ raise errors.UnsupportedFileFormatError(path) from err
except IOError as err:
raise errors.ReaderError(path) from err
diff --git a/bsie/reader/image/_raw.py b/bsie/reader/image/_raw.py
index 77be357..cd60453 100644
--- a/bsie/reader/image/_raw.py
+++ b/bsie/reader/image/_raw.py
@@ -45,7 +45,7 @@ class RawImage(base.Reader):
def __call__(self, path: str) -> PIL.Image:
# perform quick checks first
if not self._match(path):
- raise errors.ReaderError(path)
+ raise errors.UnsupportedFileFormatError(path)
try:
# open file with rawpy