From 160583b713b4b3b137fd5d69dad0b46fb526afe7 Mon Sep 17 00:00:00 2001 From: jlaura Date: Wed, 17 Nov 2021 09:40:43 -0700 Subject: [PATCH] Fixes #584 (#614) * Fixes #584 * Updates CHANGELOG * Updates for comments * Update with different exception throwing logic --- CHANGELOG.md | 1 + autocnet/spatial/isis.py | 12 ++++++++---- autocnet/spatial/tests/test_isis.py | 7 ++++++- autocnet/utils/utils.py | 7 +++++++ bin/acn_cd | 6 +++++- 5 files changed, 27 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f3c704b..ba054ba3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -46,6 +46,7 @@ release. ### Fixed - `update_from_jigsaw` failures due to stale code. Now uses a conntext on the engine to ensure closure - Fixes errors where reference measure index was being incorrectly tracked when placing measures would fail [#606](https://github.com/USGS-Astrogeology/autocnet/issues/606) +- Fixed #584 where importing autocnet fails on kalasiris imports by wrapping the import in a try accept. ## [0.6.0] diff --git a/autocnet/spatial/isis.py b/autocnet/spatial/isis.py index 528f29e3..04b30179 100644 --- a/autocnet/spatial/isis.py +++ b/autocnet/spatial/isis.py @@ -15,10 +15,14 @@ from collections import abc from numbers import Number import numpy as np -import kalasiris as isis -import pvl -import kalasiris as kal +try: + import kalasiris as isis +except Exception as exception: + from autocnet.utils.utils import FailedImport + isis = FailedImport(exception) + +import pvl isis2np_types = { "UnsignedByte" : "uint8", @@ -48,7 +52,7 @@ def get_isis_special_pixels(arr): """ isis_dtype = np2isis_types[str(arr.dtype)] - sp_pixels = getattr(kal.specialpixels, isis_dtype) + sp_pixels = getattr(isis.specialpixels, isis_dtype) null = np.argwhere(arr==sp_pixels.Null) lrs = np.argwhere(arr==sp_pixels.Lrs) diff --git a/autocnet/spatial/tests/test_isis.py b/autocnet/spatial/tests/test_isis.py index 65f06962..5926e01a 100644 --- a/autocnet/spatial/tests/test_isis.py +++ b/autocnet/spatial/tests/test_isis.py @@ -15,7 +15,12 @@ from pathlib import Path import numpy as np import numpy.testing as npt -import kalasiris as isis + +try: + import kalasiris as isis +except Exception as exception: + from autocnet.utils.utils import FailedImport + isis = FailedImport(exception) from autocnet.spatial import isis as si diff --git a/autocnet/utils/utils.py b/autocnet/utils/utils.py index 9fea4616..1c1c62a3 100644 --- a/autocnet/utils/utils.py +++ b/autocnet/utils/utils.py @@ -20,6 +20,13 @@ from shapely import geometry from shapely.geometry import MultiPoint from shapely.ops import cascaded_union, polygonize + +class FailedImport(): + def __init__(self, exception): + self.exception = exception + def __getattr__(self, name: str): + raise self.exception + def tile(array_size, tilesize=1000, overlap=500): stepsize = tilesize - overlap if stepsize < 0: diff --git a/bin/acn_cd b/bin/acn_cd index a89ed206..878d7ec8 100755 --- a/bin/acn_cd +++ b/bin/acn_cd @@ -25,7 +25,11 @@ import numpy as np from affine import Affine -import kalasiris as isis +try: + import kalasiris as isis +except: + from autocnet.utils.utils import FailedImport + isis = FailedImport() import warnings warnings.simplefilter("ignore") -- GitLab