From c107125377e53b632f05efc8c14661a64ec3fa75 Mon Sep 17 00:00:00 2001 From: Joel Collins Date: Wed, 29 May 2019 09:32:14 +0100 Subject: [PATCH] Skip loading invalid captures into array --- openflexure_microscope/camera/capture.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/openflexure_microscope/camera/capture.py b/openflexure_microscope/camera/capture.py index 5bfc68b4..46aa7acf 100644 --- a/openflexure_microscope/camera/capture.py +++ b/openflexure_microscope/camera/capture.py @@ -49,11 +49,11 @@ def pull_usercomment_dict(filepath): exif_dict = piexif.load(filepath) except InvalidImageDataError: logging.error("Invalid data at {}. Skipping.".format(filepath)) - return {} + return None if 'Exif' in exif_dict and 37510 in exif_dict['Exif']: return yaml.load(exif_dict['Exif'][37510].decode()) else: - return {} + return None def make_file_list(directory, formats): @@ -76,8 +76,11 @@ def build_captures_from_exif(): for f in files: logging.debug("Reloading capture {}...".format(f)) exif = pull_usercomment_dict(f) - capture = capture_from_exif(f, exif) - captures.append(capture) + if exif: + capture = capture_from_exif(f, exif) + captures.append(capture) + else: + logging.error("Invalid data at {}. Skipping.".format(f)) logging.info("{} capture files successfully reloaded".format(len(captures)))