diff --git a/fsl/utils/bids.py b/fsl/utils/bids.py index 40bab3a04990d6cff53f55310cc378b581a75dcc..54c22bce05401abd5db2cca7719157ceaa59fa43 100644 --- a/fsl/utils/bids.py +++ b/fsl/utils/bids.py @@ -83,7 +83,11 @@ def parseFilename(filename): sub-01_ses-01_task-stim_bold.nii.gz - has suffix ``bold``, and entities ``sub=01``, ``ses=01`` and ``task=stim``. + has suffix ``bold``, entities ``sub=01``, ``ses=01`` and ``task=stim``, and + extension ``.nii.gz``. + + .. note:: This function assumes that no period (``.``) characters occur in + the body of a BIDS filename. :returns: A tuple containing: - A dict containing the entities @@ -97,7 +101,7 @@ def parseFilename(filename): suffix = None entities = [] filename = op.basename(filename) - filename = fslpath.removeExt(filename, ['.nii', '.nii.gz', '.json']) + filename = fslpath.removeExt(filename, firstDot=True) parts = filename.split('_') for part in parts[:-1]: @@ -148,7 +152,7 @@ def isBIDSFile(filename, strict=True): """ name = op.basename(filename) - pattern = r'([a-z0-9]+-[a-z0-9]+_)*([a-z0-9])+\.(nii|nii\.gz|json)' + pattern = r'([a-z0-9]+-[a-z0-9]+_)*([a-z0-9])+\.(.+)' flags = re.ASCII | re.IGNORECASE match = re.fullmatch(pattern, name, flags) is not None