Skip to content
Snippets Groups Projects
Commit 67538f10 authored by Paul McCarthy's avatar Paul McCarthy :mountain_bicyclist:
Browse files

New flag to fsl.utils.path.addExt, allowing ambiguity. Needs testing

parent f480a89a
No related branches found
No related tags found
No related merge requests found
...@@ -1319,15 +1319,16 @@ def looksLikeImage(filename, allowedExts=None): ...@@ -1319,15 +1319,16 @@ def looksLikeImage(filename, allowedExts=None):
return any([filename.endswith(ext) for ext in allowedExts]) return any([filename.endswith(ext) for ext in allowedExts])
def addExt(prefix, mustExist=True): def addExt(prefix, mustExist=True, unambiguous=True):
"""Adds a file extension to the given file ``prefix``. See """Adds a file extension to the given file ``prefix``. See
:func:`~fsl.utils.path.addExt`. :func:`~fsl.utils.path.addExt`.
""" """
return fslpath.addExt(prefix, return fslpath.addExt(prefix,
ALLOWED_EXTENSIONS, allowedExts=ALLOWED_EXTENSIONS,
mustExist, mustExist=mustExist,
defaultExt(), defaultExt=defaultExt(),
fileGroups=FILE_GROUPS) fileGroups=FILE_GROUPS,
unambiguous=unambiguous)
def splitExt(filename): def splitExt(filename):
......
...@@ -81,7 +81,8 @@ def addExt(prefix, ...@@ -81,7 +81,8 @@ def addExt(prefix,
allowedExts=None, allowedExts=None,
mustExist=True, mustExist=True,
defaultExt=None, defaultExt=None,
fileGroups=None): fileGroups=None,
unambiguous=True):
"""Adds a file extension to the given file ``prefix``. """Adds a file extension to the given file ``prefix``.
If ``mustExist`` is False, and the file does not already have a If ``mustExist`` is False, and the file does not already have a
...@@ -95,8 +96,8 @@ def addExt(prefix, ...@@ -95,8 +96,8 @@ def addExt(prefix,
- No files exist with the given prefix and a supported extension. - No files exist with the given prefix and a supported extension.
- ``fileGroups`` is ``None``, and more than one file exists with the - ``fileGroups is None`` and ``unambiguous is True``, and more than
given prefix, and a supported extension. one file exists with the given prefix, and a supported extension.
Otherwise the full file name is returned. Otherwise the full file name is returned.
...@@ -109,6 +110,11 @@ def addExt(prefix, ...@@ -109,6 +110,11 @@ def addExt(prefix,
:arg defaultExt: Default file extension to use. :arg defaultExt: Default file extension to use.
:arg fileGroups: Recognised file groups - see :func:`getFileGroup`. :arg fileGroups: Recognised file groups - see :func:`getFileGroup`.
:arg unambiguous: If ``True`` (the default), and more than one file
exists with the specified ``prefix``, a
:exc:`PathError` is raised. Otherwise, a list
containing *all* matching files is returned.
""" """
if allowedExts is None: allowedExts = [] if allowedExts is None: allowedExts = []
...@@ -151,8 +157,14 @@ def addExt(prefix, ...@@ -151,8 +157,14 @@ def addExt(prefix,
raise PathError('Could not find a supported file ' raise PathError('Could not find a supported file '
'with prefix "{}"'.format(prefix)) 'with prefix "{}"'.format(prefix))
# Ambiguity! More than one supported # If ambiguity is ok, return
# file with the specified prefix. # all matching paths
elif not unambiguous:
return allPaths
# Ambiguity is not ok! More than
# one supported file with the
# specified prefix.
elif nexists > 1: elif nexists > 1:
# Remove non-existent paths from the # Remove non-existent paths from the
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment