From 5282684639aa3625ecf1a878410790aaa38625a6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <henrik@trineo.org>
Date: Mon, 8 Nov 2021 17:39:30 +0100
Subject: [PATCH] MAINT: handle value errors also for tsv and csv

---
 src/caosadvancedtools/table_importer.py | 24 ++++++++++++++++++++----
 1 file changed, 20 insertions(+), 4 deletions(-)

diff --git a/src/caosadvancedtools/table_importer.py b/src/caosadvancedtools/table_importer.py
index f7f7efb4..7b4414b7 100755
--- a/src/caosadvancedtools/table_importer.py
+++ b/src/caosadvancedtools/table_importer.py
@@ -406,8 +406,16 @@ class XLSImporter(TableImporter):
 
 class CSVImporter(TableImporter):
     def read_file(self, filename, sep=",", **kwargs):
-        df = pd.read_csv(filename, sep=sep, converters=self.converters,
-                         **kwargs)
+        try:
+            df = pd.read_csv(filename, sep=sep, converters=self.converters,
+                             **kwargs)
+        except ValueError as ve:
+            logger.warning(
+                "Cannot parse {}.".format(filename),
+                extra={'identifier': str(filename),
+                       'category': "inconsistency"})
+            raise DataInconsistencyError(*ve.args)
+
         self.check_dataframe(df, filename)
 
         return df
@@ -415,8 +423,16 @@ class CSVImporter(TableImporter):
 
 class TSVImporter(TableImporter):
     def read_file(self, filename, **kwargs):
-        df = pd.read_csv(filename, sep="\t", converters=self.converters,
-                         **kwargs)
+        try:
+            df = pd.read_csv(filename, sep="\t", converters=self.converters,
+                             **kwargs)
+        except ValueError as ve:
+            logger.warning(
+                "Cannot parse {}.".format(filename),
+                extra={'identifier': str(filename),
+                       'category': "inconsistency"})
+            raise DataInconsistencyError(*ve.args)
+
         self.check_dataframe(df, filename)
 
         return df
-- 
GitLab