diff --git a/src/caosadvancedtools/cfood.py b/src/caosadvancedtools/cfood.py index 9424134e688c0f7d8b56ac4e1aed272f97f7c723..d2e30de5a99faa1d4c9f6d4753f656ede49b0c46 100644 --- a/src/caosadvancedtools/cfood.py +++ b/src/caosadvancedtools/cfood.py @@ -693,7 +693,7 @@ def assure_has_property(entity, name, value, to_be_updated=None, try: compare_time = datetime.fromisoformat(el.value) - except ValueError: + except ValueError as e: # special case of wrong iso format # time zone tmp = el.value.split("+") @@ -711,7 +711,7 @@ def assure_has_property(entity, name, value, to_be_updated=None, ms = '.' + tmp[1] + '0'*(6-len(tmp[1])) else: raise ValueError( - "invalid millisecond format in {}".format(el.value)) + "invalid millisecond format in {}".format(el.value)) from e else: ms = "" tmp = tmp[0] + ms + tz_str diff --git a/src/caosadvancedtools/pandoc_header_tools.py b/src/caosadvancedtools/pandoc_header_tools.py index a6879565dbbe80a7bb22c041ff56f59f04b623ec..fec27cdbb33cf963d01e40b61c04ae2613f5fe17 100644 --- a/src/caosadvancedtools/pandoc_header_tools.py +++ b/src/caosadvancedtools/pandoc_header_tools.py @@ -141,7 +141,7 @@ it is not at the beginning, it must be preceded by a blank line. try: yaml_part = yaml.load("\n".join(headerlines), Loader=yaml.BaseLoader) except yaml.scanner.ScannerError as e: - raise ParseErrorsInHeader(filename, e) + raise ParseErrorsInHeader(filename, e) from e # except yaml.error.MarkedYAMLError as e: # raise NoValidHeader(filename) if not isinstance(yaml_part, dict): diff --git a/src/caosadvancedtools/table_export.py b/src/caosadvancedtools/table_export.py index 78830b19a8f0274d4416a4a8faaa55de485cbc51..1805419b1f5a63adec4ccabb554b24281fcc44bf 100644 --- a/src/caosadvancedtools/table_export.py +++ b/src/caosadvancedtools/table_export.py @@ -125,10 +125,10 @@ class BaseTableExporter(object): try: with open(export_dict, encoding="utf-8") as tmp: self.export_dict = json.load(tmp) - except Exception: + except Exception as e: raise ValueError( "export_dict must be either a dictionary" - " or the path to a json file.") + " or the path to a json file.") from e self.record = record self._check_sanity_of_export_dict() self.raise_error_if_missing = raise_error_if_missing @@ -159,7 +159,7 @@ class BaseTableExporter(object): logger.debug(exc) errmssg = "Empty or invalid query '{}' for entry {}".format( q, e) - raise TableExportError(errmssg) + raise TableExportError(errmssg) from exc if val is not None: self.info[e] = val @@ -189,7 +189,7 @@ class BaseTableExporter(object): errmssg += ", nor does record {} have a property of that name".format( self.record.id) errmssg += "." - raise TableExportError(errmssg) + raise TableExportError(errmssg) from exc if self.missing: errmssg = "The following mandatory entries are missing:\n" diff --git a/src/caosadvancedtools/table_importer.py b/src/caosadvancedtools/table_importer.py index b3977b395f0e74561108baf1a783a3d5a126ed69..b061092ee9598eb847b745eec13dde75df10151f 100755 --- a/src/caosadvancedtools/table_importer.py +++ b/src/caosadvancedtools/table_importer.py @@ -497,7 +497,7 @@ class XLSImporter(TableImporter): str(e)), extra={'identifier': str(filename), 'category': "inconsistency"}) - raise DataInconsistencyError(*e.args) + raise DataInconsistencyError(*e.args) from e if len(xls_file.sheet_names) > 1: # Multiple sheets is the default now. Only show in debug @@ -515,7 +515,7 @@ class XLSImporter(TableImporter): "Cannot parse {}.\n{}".format(filename, e), extra={'identifier': str(filename), 'category': "inconsistency"}) - raise DataInconsistencyError(*e.args) + raise DataInconsistencyError(*e.args) from e df = self.check_dataframe(df, filename) @@ -537,7 +537,7 @@ class CSVImporter(TableImporter): "Cannot parse {}.\n{}".format(filename, ve), extra={'identifier': str(filename), 'category': "inconsistency"}) - raise DataInconsistencyError(*ve.args) + raise DataInconsistencyError(*ve.args) from ve except TypeError as te: # Iterate through the columns and rows to identify # problematic cells with wrong types. @@ -577,7 +577,7 @@ class CSVImporter(TableImporter): for err in error_list: msg += f" * column \"{err[0]}\": Expected \"{err[1]}\" but found \"{err[2]}\".\n" msg += '\n' - raise DataInconsistencyError(msg) + raise DataInconsistencyError(msg) from te df = self.check_dataframe(df, filename)