Skip to content

Commit 433d42d

Browse files
authored
fix: Use removeprefix instead of lstrip or ternary operator (#3409)
We had some `.lstrip()`s that should be `removeprefix()` as well as some pre-`removeprefix()` hacks of the form `s[len(prefix):] if s.startswith(prefix) else s`.
2 parents db44dff + 5c55606 commit 433d42d

File tree

3 files changed

+6
-9
lines changed

3 files changed

+6
-9
lines changed

fmriprep/cli/parser.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,6 @@ def _to_gb(value):
105105
units = value[len(digits) :] or 'M'
106106
return int(digits) * scale[units[0]]
107107

108-
def _drop_sub(value):
109-
return value[4:] if value.startswith('sub-') else value
110-
111108
def _process_value(value):
112109
import bids
113110

@@ -205,7 +202,7 @@ def _slice_time_ref(value, parser):
205202
'--participant_label',
206203
action='store',
207204
nargs='+',
208-
type=_drop_sub,
205+
type=lambda label: label.removeprefix('sub-'),
209206
help='A space delimited list of participant identifiers or a single '
210207
'identifier (the sub- prefix can be removed)',
211208
)

fmriprep/reports/core.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ def generate_reports(
8181

8282
errors = []
8383
for subject_label in subject_list:
84+
subject_label = subject_label.removeprefix('sub-')
8485
# The number of sessions is intentionally not based on session_list but
8586
# on the total number of sessions, because I want the final derivatives
8687
# folder to be the same whether sessions were run one at a time or all-together.
@@ -97,7 +98,7 @@ def generate_reports(
9798
else:
9899
# Beyond a threshold, we separate the anatomical report from the functional.
99100
bootstrap_file = data.load('reports-spec-anat.yml')
100-
html_report = f'sub-{subject_label.lstrip("sub-")}_anat.html'
101+
html_report = f'sub-{subject_label}_anat.html'
101102

102103
report_error = run_reports(
103104
output_dir,
@@ -123,12 +124,11 @@ def generate_reports(
123124
subject=subject_label, **filters
124125
)
125126

126-
# Drop ses- prefixes
127-
session_list = [ses[4:] if ses.startswith('ses-') else ses for ses in session_list]
127+
session_list = [ses.removeprefix('ses-') for ses in session_list]
128128

129129
for session_label in session_list:
130130
bootstrap_file = data.load('reports-spec-func.yml')
131-
html_report = f'sub-{subject_label.lstrip("sub-")}_ses-{session_label}_func.html'
131+
html_report = f'sub-{subject_label}_ses-{session_label}_func.html'
132132

133133
report_error = run_reports(
134134
output_dir,

fmriprep/utils/bids.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ def validate_input_dir(exec_env, bids_dir, participant_label, need_T1w=True):
217217
# Limit validation only to data from requested participants
218218
if participant_label:
219219
all_subs = {s.name[4:] for s in bids_dir.glob('sub-*')}
220-
selected_subs = {s[4:] if s.startswith('sub-') else s for s in participant_label}
220+
selected_subs = {s.removeprefix('sub-') for s in participant_label}
221221
bad_labels = selected_subs.difference(all_subs)
222222
if bad_labels:
223223
error_msg = (

0 commit comments

Comments
 (0)