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
def load_classifier() -> Optional["DocumentClassifier"]:
def load_classifier(raise_exception: bool = False) -> Optional["DocumentClassifier"]:
if not settings.MODEL_FILE.is_file():
logger.debug(
"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")
Path(settings.MODEL_FILE).unlink()
classifier = None
except ClassifierModelCorruptError:
if raise_exception:
raise e
except ClassifierModelCorruptError as e:
# there's something wrong with the model file.
logger.exception(
"Unrecoverable error while loading document "
@ -61,12 +63,18 @@ def load_classifier() -> Optional["DocumentClassifier"]:
)
Path(settings.MODEL_FILE).unlink
classifier = None
except OSError:
if raise_exception:
raise e
except OSError as e:
logger.exception("IO error while loading document classification model")
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")
classifier = None
if raise_exception:
raise e
return classifier

View File

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