Allow raise error in load_classifier

This commit is contained in:
shamoon 2024-12-26 08:41:58 -08:00 committed by Sebastian Steinbeißer
parent 1ce5a78bc6
commit 02386d6513
No known key found for this signature in database
GPG Key ID: E8200F0F0380C0E0
2 changed files with 13 additions and 5 deletions

View File

@ -37,7 +37,7 @@ class ClassifierModelCorruptError(Exception):
pass pass
def load_classifier() -> Optional["DocumentClassifier"]: def load_classifier(raise_exception: bool = False) -> Optional["DocumentClassifier"]:
if not settings.MODEL_FILE.is_file(): if not settings.MODEL_FILE.is_file():
logger.debug( logger.debug(
"Document classification model does not exist (yet), not " "Document classification model does not exist (yet), not "
@ -53,7 +53,9 @@ def load_classifier() -> Optional["DocumentClassifier"]:
logger.info(f"Classifier version incompatible: {e.message}, will re-train") logger.info(f"Classifier version incompatible: {e.message}, will re-train")
Path(settings.MODEL_FILE).unlink() Path(settings.MODEL_FILE).unlink()
classifier = None classifier = None
except ClassifierModelCorruptError: if raise_exception:
raise e
except ClassifierModelCorruptError as e:
# there's something wrong with the model file. # there's something wrong with the model file.
logger.exception( logger.exception(
"Unrecoverable error while loading document " "Unrecoverable error while loading document "
@ -61,12 +63,18 @@ def load_classifier() -> Optional["DocumentClassifier"]:
) )
Path(settings.MODEL_FILE).unlink Path(settings.MODEL_FILE).unlink
classifier = None classifier = None
except OSError: if raise_exception:
raise e
except OSError as e:
logger.exception("IO error while loading document classification model") logger.exception("IO error while loading document classification model")
classifier = None classifier = None
except Exception: # pragma: no cover if raise_exception:
raise e
except Exception as e: # pragma: no cover
logger.exception("Unknown error while loading document classification model") logger.exception("Unknown error while loading document classification model")
classifier = None classifier = None
if raise_exception:
raise e
return classifier return classifier

View File

@ -2139,7 +2139,7 @@ class SystemStatusView(PassUserMixin):
classifier_error = None classifier_error = None
classifier_status = None classifier_status = None
try: try:
classifier = load_classifier() classifier = load_classifier(raise_exception=True)
if classifier is None: if classifier is None:
# Make sure classifier should exist # Make sure classifier should exist
docs_queryset = Document.objects.exclude( docs_queryset = Document.objects.exclude(