From 1e65d672d7ef959615b429436136040a62c93587 Mon Sep 17 00:00:00 2001 From: Matthias Bisping Date: Mon, 25 Apr 2022 16:28:26 +0200 Subject: [PATCH] Pull request #10: fixed check for analysis result validity Merge in RR/image-prediction from result_check_fix to master Squashed commit of the following: commit 8352e657ef1f399ca0fe6a89e7a4c7fc4bd0701d Author: Matthias Bisping Date: Mon Apr 25 16:23:24 2022 +0200 logging setup changed commit 956706378b7d7f6daa574b86eb29636797c05bba Author: Matthias Bisping Date: Mon Apr 25 16:17:19 2022 +0200 error handling for bad xrefs commit e7d229c0d70574cae316a841ab1377fae625ab15 Author: Matthias Bisping Date: Mon Apr 25 14:07:19 2022 +0200 fixed check for analysis result validity --- image_prediction/flask.py | 2 +- image_prediction/image_extractor/extractors/parsable.py | 9 ++++++++- src/serve.py | 5 +++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/image_prediction/flask.py b/image_prediction/flask.py index 7ab4005..b1473da 100644 --- a/image_prediction/flask.py +++ b/image_prediction/flask.py @@ -63,7 +63,7 @@ def make_prediction_server(predict_fn: Callable): logger.info("Analysing...") predictions = predict_fn_wrapped(request.data) - if predictions: + if predictions is not None: response = jsonify(predictions) logger.info("Analysis completed.") return response diff --git a/image_prediction/image_extractor/extractors/parsable.py b/image_prediction/image_extractor/extractors/parsable.py index a022396..9fe5b46 100644 --- a/image_prediction/image_extractor/extractors/parsable.py +++ b/image_prediction/image_extractor/extractors/parsable.py @@ -13,8 +13,11 @@ from image_prediction.image_extractor.extractor import ImageExtractor, ImageMeta from image_prediction.info import Info from image_prediction.stitching.stitching import stitch_pairs from image_prediction.stitching.utils import validate_box_coords, validate_box_size +from image_prediction.utils import get_logger from image_prediction.utils.generic import lift +logger = get_logger() + class ParsablePDFImageExtractor(ImageExtractor): def __init__(self, verbose=False, tolerance=0): @@ -162,7 +165,11 @@ def has_alpha_channel(doc, xref): if maybe_smask: return any([doc.extract_image(maybe_smask) is not None, bool(fitz.Pixmap(doc, maybe_smask).alpha)]) else: - return bool(fitz.Pixmap(doc, xref).alpha) + try: + return bool(fitz.Pixmap(doc, xref).alpha) + except ValueError: + logger.debug(f"Encountered invalid xref `{xref}` in {doc.metadata.get('title', '')}.") + return False def tiny(metadata): diff --git a/src/serve.py b/src/serve.py index 005cbb2..57749b0 100644 --- a/src/serve.py +++ b/src/serve.py @@ -10,7 +10,6 @@ from image_prediction.utils.banner import show_banner def main(): - logger = get_logger() def predict(pdf): # Keras service_estimator.predict stalls when service_estimator was loaded in different process; @@ -26,7 +25,9 @@ def main(): if __name__ == "__main__": - logging.basicConfig(level=CONFIG.service.logging_level) + logging.basicConfig() + logger = get_logger() + logger = logger.setLevel(CONFIG.service.logging_level) show_banner()