self.correspondent_classifier = pickle.load(f)
self.document_type_classifier = pickle.load(f)
self.storage_path_classifier = pickle.load(f)
- except Exception:
- raise ClassifierModelCorruptError()
+ except Exception as err:
+ raise ClassifierModelCorruptError() from err
# Check for the warning about unpickling from differing versions
# and consider it incompatible
{"type": "status_update", "data": payload},
)
- def _fail(self, message, log_message=None, exc_info=None):
+ def _fail(
+ self,
+ message,
+ log_message=None,
+ exc_info=None,
+ exception: Optional[Exception] = None,
+ ):
self._send_progress(100, 100, "FAILED", message)
self.log("error", log_message or message, exc_info=exc_info)
- raise ConsumerError(f"{self.filename}: {log_message or message}")
+ raise ConsumerError(f"{self.filename}: {log_message or message}") from exception
def __init__(self):
super().__init__()
MESSAGE_PRE_CONSUME_SCRIPT_ERROR,
f"Error while executing pre-consume script: {e}",
exc_info=True,
+ exception=e,
)
def run_post_consume_script(self, document):
MESSAGE_POST_CONSUME_SCRIPT_ERROR,
f"Error while executing post-consume script: {e}",
exc_info=True,
+ exception=e,
)
def try_consume_file(
str(e),
f"Error while consuming document {self.filename}: {e}",
exc_info=True,
+ exception=e,
)
# Prepare the document classifier.
f"The following error occurred while consuming "
f"{self.filename}: {e}",
exc_info=True,
+ exception=e,
)
finally:
document_parser.cleanup()
# Need to transition out of AUTH state to SELECTED
M.folder.set("INBOX")
- except Exception:
+ except Exception as err:
self.log(
"error",
"Unable to authenticate with mail server using AUTH=PLAIN",
)
- raise MailError(f"Error while authenticating account {account}")
+ raise MailError(
+ f"Error while authenticating account {account}",
+ ) from err
except Exception as e:
self.log(
"error",
try:
M.folder.set(rule.folder)
- except MailboxFolderSelectError:
+ except MailboxFolderSelectError as err:
self.log(
"error",
raise MailError(
f"Rule {rule}: Folder {rule.folder} "
f"does not exist in account {rule.account}",
- )
+ ) from err
criterias = make_criterias(rule)
mark_seen=False,
charset=rule.account.character_set,
)
- except Exception:
- raise MailError(f"Rule {rule}: Error while fetching folder {rule.folder}")
+ except Exception as err:
+ raise MailError(
+ f"Rule {rule}: Error while fetching folder {rule.folder}",
+ ) from err
post_consume_messages = []
except Exception as e:
raise MailError(
f"Rule {rule}: Error while processing post-consume actions: " f"{e}",
- )
+ ) from e
return total_processed_files
except Exception as e:
# If this fails, we have a serious issue at hand.
- raise ParseError(f"{e.__class__.__name__}: {str(e)}")
+ raise ParseError(f"{e.__class__.__name__}: {str(e)}") from e
except Exception as e:
# Anything else is probably serious.
- raise ParseError(f"{e.__class__.__name__}: {str(e)}")
+ raise ParseError(f"{e.__class__.__name__}: {str(e)}") from e
# As a last resort, if we still don't have any text for any reason,
# try to extract the text from the original document.
raise ParseError(
f"Could not parse {document_path} with tika server at "
f"{tika_server}: {err}",
- )
+ ) from err
self.text = parsed["content"].strip()
response = requests.post(url, files=files, headers=headers)
response.raise_for_status() # ensure we notice bad responses
except Exception as err:
- raise ParseError(f"Error while converting document to PDF: {err}")
+ raise ParseError(
+ f"Error while converting document to PDF: {err}",
+ ) from err
with open(pdf_path, "wb") as file:
file.write(response.content)