Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Evan Edmond
fslpy
Commits
8c69d1bb
Commit
8c69d1bb
authored
Aug 20, 2021
by
Paul McCarthy
🚵
Browse files
MNT: Improve imglob performance by avoiding expensive imports (numpy/nibabel/etc)
parent
2306f558
Changes
2
Hide whitespace changes
Inline
Side-by-side
fsl/scripts/imglob.py
View file @
8c69d1bb
...
...
@@ -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
...
...
fsl/utils/path.py
View file @
8c69d1bb
...
...
@@ -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
:
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment