diff --git a/fsl/scripts/imglob.py b/fsl/scripts/imglob.py index 9aafce906aab832d8fe43a8d249d12614aac67dd..8c8c631e2719166c429bc9d80d5b925a063b3b33 100644 --- a/fsl/scripts/imglob.py +++ b/fsl/scripts/imglob.py @@ -10,14 +10,10 @@ NIFTI/ANALYZE image files. import sys -import warnings +import glob +import itertools as it import fsl.utils.path as fslpath -# See atlasq.py for explanation -with warnings.catch_warnings(): - warnings.filterwarnings("ignore", category=FutureWarning) - import fsl.data.image as fslimage - usage = """ Usage: imglob [-extension/extensions] <list of names> @@ -25,8 +21,17 @@ Usage: imglob [-extension/extensions] <list of names> -extensions for image list with full extensions """.strip() -exts = fslimage.ALLOWED_EXTENSIONS -groups = fslimage.FILE_GROUPS + +# The lists below are defined in the +# fsl.data.image class, but are duplicated +# here for performance (to avoid import of +# nibabel/numpy/etc). +exts = ['.nii.gz', '.nii', '.img', '.hdr', '.img.gz', '.hdr.gz'] +"""List of supported image file extensions. """ + + +groups = [('.hdr', '.img'), ('.hdr.gz', '.img.gz')] +"""List of known image file groups (image/header file pairs). """ def imglob(paths, output=None): @@ -76,8 +81,10 @@ def imglob(paths, output=None): # hdr and img and otherwise) that match for path in paths: try: - path = fslimage.removeExt(path) - imgfiles.extend(fslimage.addExt(path, unambiguous=False)) + path = fslpath.removeExt(path, allowedExts=exts) + imgfiles.extend(fslpath.addExt(path, + allowedExts=exts, + unambiguous=False)) except fslpath.PathError: continue diff --git a/fsl/utils/path.py b/fsl/utils/path.py index 09546f4b2cdf2660e234e49a7b09814232fac83e..bbaaa206f8c995181b139b3d668e0d201d331964 100644 --- a/fsl/utils/path.py +++ b/fsl/utils/path.py @@ -37,8 +37,6 @@ import re from typing import Sequence, Tuple, Union -from fsl.utils.platform import platform - PathLike = Union[str, pathlib.Path] @@ -596,6 +594,7 @@ def winpath(path): This requires WSL2 which supports the ``\\wsl$\\`` network path. wslpath is assumed to be an absolute path. """ + from fsl.utils.platform import platform # pylint: disable=import-outside-toplevel # noqa: E501 if not platform.fslwsl: return path else: