From 0341fde3f2be324538e5ba8788a816ce8270ef6e Mon Sep 17 00:00:00 2001 From: Piotr Jarosik Date: Mon, 28 Mar 2022 19:33:44 +0200 Subject: [PATCH] Made arrus.utils.imaging package to import cupy only when it's available. --- api/python/arrus/utils/imaging.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/api/python/arrus/utils/imaging.py b/api/python/arrus/utils/imaging.py index 0d2ddc8e6..8482099f4 100644 --- a/api/python/arrus/utils/imaging.py +++ b/api/python/arrus/utils/imaging.py @@ -18,19 +18,25 @@ from collections.abc import Iterable from pathlib import Path import os +import importlib.util -import cupy -import re +def is_package_available(package_name): + return importlib.util.find_spec(package_name) is not None -if not re.match("^\\d+\\.\\d+\\.\\d+$", cupy.__version__): - raise ValueError(f"Unrecognized pattern " - f"of the cupy version: {cupy.__version__}") - -if tuple(int(v) for v in cupy.__version__.split(".")) < (9, 0, 0): - raise Exception(f"The version of cupy module is too low. " - f"Use version ''9.0.0'' or higher.") +if is_package_available("cupy"): + import cupy + import re + if not re.match("^\\d+\\.\\d+\\.\\d+$", cupy.__version__): + raise ValueError(f"Unrecognized pattern " + f"of the cupy version: {cupy.__version__}") + if tuple(int(v) for v in cupy.__version__.split(".")) < (9, 0, 0): + raise Exception(f"The version of cupy module is too low. " + f"Use version ''9.0.0'' or higher.") +else: + print("Cupy package is not available, some of the arrus.utils.imaging " + "operators may not be available.") def get_extent(x_grid, z_grid):