diff --git a/fsl/scripts/imcp.py b/fsl/scripts/imcp.py index 71af0fd86c682751ccc351d680c02b4576f9260b..4ec9887abed2b526a1979c9af604016c01c26509 100755 --- a/fsl/scripts/imcp.py +++ b/fsl/scripts/imcp.py @@ -58,13 +58,13 @@ def main(argv=None): fileGroups=fslimage.FILE_GROUPS) for src in srcs: - try: - imcp.imcp(src, dest, useDefaultExt=True) - - except Exception as e: - print(e) - break + imcp.imcp(src, dest, useDefaultExt=True) if __name__ == '__main__': - main() + + try: + main() + except Exception as e: + print(e) + sys.exit(1) diff --git a/fsl/scripts/immv.py b/fsl/scripts/immv.py index 66f57bd497c2838d7b88a6f74676fda372cdb8e0..f5a4843a62b9766e691d8efe5368ec4a4dff21b3 100755 --- a/fsl/scripts/immv.py +++ b/fsl/scripts/immv.py @@ -59,13 +59,12 @@ def main(argv=None): fileGroups=fslimage.FILE_GROUPS) for src in srcs: - try: - imcp.immv(src, dest, useDefaultExt=True) - - except Exception as e: - print(e) - break + imcp.immv(src, dest, useDefaultExt=True) if __name__ == '__main__': - main() + try: + main() + except Exception as e: + print(e) + sys.exit(1) diff --git a/fsl/utils/path.py b/fsl/utils/path.py index cbd9fd8bdccfe5ec5ff7187d0e79b5c55bfd1e81..32a676cc36ecf2779b1769c6aa080340f40d13f7 100644 --- a/fsl/utils/path.py +++ b/fsl/utils/path.py @@ -246,7 +246,10 @@ def removeDuplicates(paths, allowedExts=None, fileGroups=None): ['001.img', '002.img', '003.img'] - :arg paths: List of paths to reduce. + A :exc:`PathError` is raised if any of the paths do not exist. + + :arg paths: List of paths to reduce. If ``allowedExts`` is not + ``None``, may be incomplete. :arg allowedExts: Allowed/recognised file extensions. @@ -257,10 +260,19 @@ def removeDuplicates(paths, allowedExts=None, fileGroups=None): for path in paths: + path = addExt(path, + mustExist=True, + allowedExts=allowedExts, + fileGroups=fileGroups) + groupFiles = getFileGroup(path, allowedExts, fileGroups) - if not any([g in unique for g in groupFiles]): - unique.append(path) + if len(groupFiles) == 0: + if path not in unique: + unique.append(path) + + elif not any([p in unique for p in groupFiles]): + unique.append(groupFiles[0]) return unique @@ -320,7 +332,7 @@ def getFileGroup(path, allowedExts=None, fileGroups=None, fullPaths=True): for group in fileGroups: - if ext not in group: + if ext != '' and ext not in group: continue groupFiles = [base + s for s in group]