diff options
Diffstat (limited to 'bsie/reader/chain.py')
-rw-r--r-- | bsie/reader/chain.py | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/bsie/reader/chain.py b/bsie/reader/chain.py index 5e9e0d5..1dbc52b 100644 --- a/bsie/reader/chain.py +++ b/bsie/reader/chain.py @@ -73,16 +73,19 @@ 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 + raise_error = False for child in self._children: try: return child(path) except errors.UnsupportedFileFormatError: + # child cannot read the file, skip. pass except errors.ReaderError: - # child cannot read the file, skip. - raise_error = errors.ReaderError # type: ignore [assignment] # mypy is confused + # child failed to read the file, skip. + raise_error = True - raise raise_error(path) + if raise_error: + raise errors.ReaderError(path) + raise errors.UnsupportedFileFormatError(path) ## EOF ## |