From 0fcafa2eddd34f15f34ad0a40f662cf3d5bcef0e Mon Sep 17 00:00:00 2001
From: jvoisin <julien.voisin@dustri.org>
Date: Mon, 13 Nov 2023 15:03:42 +0100
Subject: [PATCH] Raise a ValueError for invalid FLAC files to please mypy

---
 libmat2/abstract.py | 5 ++++-
 libmat2/audio.py    | 2 ++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/libmat2/abstract.py b/libmat2/abstract.py
index c531fbd..adf384a 100644
--- a/libmat2/abstract.py
+++ b/libmat2/abstract.py
@@ -34,7 +34,10 @@ class AbstractParser(abc.ABC):
 
     @abc.abstractmethod
     def get_meta(self) -> Dict[str, Union[str, Dict]]:
-        """Return all the metadata of the current file"""
+        """Return all the metadata of the current file
+
+        :raises RuntimeError: Raised if the cleaning process went wrong.
+        """
 
     @abc.abstractmethod
     def remove_all(self) -> bool:
diff --git a/libmat2/audio.py b/libmat2/audio.py
index 4e447c5..2029d9c 100644
--- a/libmat2/audio.py
+++ b/libmat2/audio.py
@@ -82,6 +82,8 @@ class FLACParser(MutagenParser):
             with open(fname, 'wb') as f:
                 f.write(picture.data)
             p, _ = parser_factory.get_parser(fname)  # type: ignore
+            if p is None:
+                raise ValueError
             p.sandbox = self.sandbox
             # Mypy chokes on ternaries :/
             meta[name] = p.get_meta() if p else 'harmful data'  # type: ignore
-- 
GitLab