diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f3c704be95bbeacb00ee7f79e9e18e47c2c0b99..ba054ba3117bc4b223f0e68ac6b6b48dddb9ddd9 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 528f29e3b4014db422b14cf9b771dd05308547bf..04b30179e0d13c57c4a59684c89fc29f01d8b7d7 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 65f0696211c52b17ab19d59d490ac31466e19873..5926e01a27fc5aaaf8cad3a7fd7144877cc298d5 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 9fea461615a304942e408615a77beeb0a064aa88..1c1c62a3696f08b34327a091f55168dc2ab790f3 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 a89ed206976e13dd32523130764a687d9e37f148..878d7ec879550673c41b02a3d72f6ff9e6a99455 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")