Skip to content

Commit c9ee512

Browse files
STY: Apply ruff/pyupgrade rule UP032
UP032 Use f-string instead of `format` call Co-authored-by: Chris Markiewicz <[email protected]>
1 parent adf037f commit c9ee512

36 files changed

+117
-298
lines changed

nipype/algorithms/confounds.py

+4-9
Original file line numberDiff line numberDiff line change
@@ -608,8 +608,7 @@ def _run_interface(self, runtime):
608608

609609
if len(imgseries.shape) != 4:
610610
raise ValueError(
611-
"{} expected a 4-D nifti file. Input {} has "
612-
"{} dimensions (shape {})".format(
611+
"{} expected a 4-D nifti file. Input {} has {} dimensions (shape {})".format( # noqa: UP032
613612
self._header,
614613
self.inputs.realigned_file,
615614
len(imgseries.shape),
@@ -648,8 +647,7 @@ def _run_interface(self, runtime):
648647

649648
if TR == 0:
650649
raise ValueError(
651-
"{} cannot detect repetition time from image - "
652-
"Set the repetition_time input".format(self._header)
650+
f"{self._header} cannot detect repetition time from image - Set the repetition_time input"
653651
)
654652

655653
if isdefined(self.inputs.variance_threshold):
@@ -753,8 +751,7 @@ def _run_interface(self, runtime):
753751
f.write("\t".join(["component"] + list(metadata.keys())) + "\n")
754752
for i in zip(components_names, *metadata.values()):
755753
f.write(
756-
"{0[0]}\t{0[1]}\t{0[2]:.10f}\t"
757-
"{0[3]:.10f}\t{0[4]:.10f}\t{0[5]}\n".format(i)
754+
f"{i[0]}\t{i[1]}\t{i[2]:.10f}\t{i[3]:.10f}\t{i[4]:.10f}\t{i[5]}\n"
758755
)
759756

760757
return runtime
@@ -1398,9 +1395,7 @@ def compute_noise_components(
13981395
if imgseries.shape[:3] != mask.shape:
13991396
raise ValueError(
14001397
"Inputs for CompCor, timeseries and mask, do not have "
1401-
"matching spatial dimensions ({} and {}, respectively)".format(
1402-
imgseries.shape[:3], mask.shape
1403-
)
1398+
f"matching spatial dimensions ({imgseries.shape[:3]} and {mask.shape}, respectively)"
14041399
)
14051400

14061401
voxel_timecourses = imgseries[mask, :]

nipype/caching/memory.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ def __call__(self, **kwargs):
8686
return out
8787

8888
def __repr__(self):
89-
return "{}({}.{}), base_dir={})".format(
89+
return "{}({}.{}), base_dir={})".format( # noqa: UP032
9090
self.__class__.__name__,
9191
self.interface.__module__,
9292
self.interface.__name__,

nipype/interfaces/ants/registration.py

+14-14
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ def _transformation_constructor(self):
204204
return "".join(retval)
205205

206206
def _regularization_constructor(self):
207-
return "--regularization {}[{},{}]".format(
207+
return "--regularization {}[{},{}]".format( # noqa: UP032
208208
self.inputs.regularization,
209209
self.inputs.regularization_gradient_field_sigma,
210210
self.inputs.regularization_deformation_field_sigma,
@@ -1241,7 +1241,7 @@ def _format_winsorize_image_intensities(self):
12411241
)
12421242
)
12431243
self._quantilesDone = True
1244-
return "--winsorize-image-intensities [ {}, {} ]".format(
1244+
return "--winsorize-image-intensities [ {}, {} ]".format( # noqa: UP032
12451245
self.inputs.winsorize_lower_quantile,
12461246
self.inputs.winsorize_upper_quantile,
12471247
)
@@ -1268,12 +1268,12 @@ def _get_initial_transform_filenames(self):
12681268
def _format_arg(self, opt, spec, val):
12691269
if opt == "fixed_image_mask":
12701270
if isdefined(self.inputs.moving_image_mask):
1271-
return "--masks [ {}, {} ]".format(
1271+
return "--masks [ {}, {} ]".format( # noqa: UP032
12721272
self.inputs.fixed_image_mask,
12731273
self.inputs.moving_image_mask,
12741274
)
12751275
else:
1276-
return "--masks %s" % self.inputs.fixed_image_mask
1276+
return "--masks {}".format(self.inputs.fixed_image_mask) # noqa: UP032
12771277
elif opt == "transforms":
12781278
return self._format_registration()
12791279
elif opt == "initial_moving_transform":
@@ -1308,18 +1308,20 @@ def _format_arg(self, opt, spec, val):
13081308
out_filename = self._get_outputfilenames(inverse=False)
13091309
inv_out_filename = self._get_outputfilenames(inverse=True)
13101310
if out_filename and inv_out_filename:
1311-
return "--output [ {}, {}, {} ]".format(
1311+
return "--output [ {}, {}, {} ]".format( # noqa: UP032
13121312
self.inputs.output_transform_prefix,
13131313
out_filename,
13141314
inv_out_filename,
13151315
)
13161316
elif out_filename:
1317-
return "--output [ {}, {} ]".format(
1317+
return "--output [ {}, {} ]".format( # noqa: UP032
13181318
self.inputs.output_transform_prefix,
13191319
out_filename,
13201320
)
13211321
else:
1322-
return "--output %s" % self.inputs.output_transform_prefix
1322+
return "--output {}".format( # noqa: UP032
1323+
self.inputs.output_transform_prefix,
1324+
)
13231325
elif opt == "winsorize_upper_quantile" or opt == "winsorize_lower_quantile":
13241326
if not self._quantilesDone:
13251327
return self._format_winsorize_image_intensities()
@@ -1590,7 +1592,7 @@ class MeasureImageSimilarity(ANTSCommand):
15901592
def _metric_constructor(self):
15911593
retval = (
15921594
'--metric {metric}["{fixed_image}","{moving_image}",{metric_weight},'
1593-
"{radius_or_number_of_bins},{sampling_strategy},{sampling_percentage}]".format(
1595+
"{radius_or_number_of_bins},{sampling_strategy},{sampling_percentage}]".format( # noqa: UP032
15941596
metric=self.inputs.metric,
15951597
fixed_image=self.inputs.fixed_image,
15961598
moving_image=self.inputs.moving_image,
@@ -1604,13 +1606,13 @@ def _metric_constructor(self):
16041606

16051607
def _mask_constructor(self):
16061608
if self.inputs.moving_image_mask:
1607-
retval = '--masks ["{fixed_image_mask}","{moving_image_mask}"]'.format(
1609+
retval = '--masks ["{fixed_image_mask}","{moving_image_mask}"]'.format( # noqa: UP032
16081610
fixed_image_mask=self.inputs.fixed_image_mask,
16091611
moving_image_mask=self.inputs.moving_image_mask,
16101612
)
16111613
else:
1612-
retval = '--masks "{fixed_image_mask}"'.format(
1613-
fixed_image_mask=self.inputs.fixed_image_mask
1614+
retval = '--masks "{}"'.format( # noqa: UP032
1615+
fixed_image_mask=self.inputs.fixed_image_mask,
16141616
)
16151617
return retval
16161618

@@ -1870,9 +1872,7 @@ def _list_outputs(self):
18701872
f"00_{self.inputs.output_prefix}_AffineTransform.mat"
18711873
)
18721874
outputs["displacement_field"] = os.path.abspath(
1873-
"01_{}_DisplacementFieldTransform.nii.gz".format(
1874-
self.inputs.output_prefix
1875-
)
1875+
f"01_{self.inputs.output_prefix}_DisplacementFieldTransform.nii.gz"
18761876
)
18771877
if self.inputs.process == "assemble":
18781878
outputs["out_file"] = os.path.abspath(self.inputs.out_file)

nipype/interfaces/base/core.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -849,8 +849,8 @@ def _filename_from_source(self, name, chain=None):
849849

850850
if not isinstance(ns, (str, bytes)):
851851
raise ValueError(
852-
"name_source of '{}' trait should be an input trait "
853-
"name, but a type {} object was found".format(name, type(ns))
852+
f"name_source of '{name}' trait should be an input trait "
853+
f"name, but a type {type(ns)} object was found"
854854
)
855855

856856
if isdefined(getattr(self.inputs, ns)):

nipype/interfaces/base/specs.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -142,10 +142,7 @@ def _deprecated_warn(self, obj, name, old, new):
142142
raise TraitError(msg)
143143
else:
144144
if trait_spec.new_name:
145-
msg += "Unsetting old value {}; setting new value {}.".format(
146-
name,
147-
trait_spec.new_name,
148-
)
145+
msg += f"Unsetting old value {name}; setting new value {trait_spec.new_name}."
149146
warn(msg)
150147
if trait_spec.new_name:
151148
self.trait_set(

nipype/interfaces/cmtk/parcellation.py

+3-8
Original file line numberDiff line numberDiff line change
@@ -315,15 +315,10 @@ def create_annot_label(subject_id, subjects_dir, fs_dir, parcellation_name):
315315
)
316316
runCmd(mri_cmd, log)
317317
runCmd("mris_volmask %s" % subject_id, log)
318-
mri_cmd = 'mri_convert -i "{}/mri/ribbon.mgz" -o "{}/mri/ribbon.nii.gz"'.format(
319-
op.join(subjects_dir, subject_id),
320-
op.join(subjects_dir, subject_id),
321-
)
318+
subject_path = op.join(subjects_dir, subject_id)
319+
mri_cmd = f'mri_convert -i "{subject_path}/mri/ribbon.mgz" -o "{subject_path}/mri/ribbon.nii.gz"'
322320
runCmd(mri_cmd, log)
323-
mri_cmd = 'mri_convert -i "{}/mri/aseg.mgz" -o "{}/mri/aseg.nii.gz"'.format(
324-
op.join(subjects_dir, subject_id),
325-
op.join(subjects_dir, subject_id),
326-
)
321+
mri_cmd = f'mri_convert -i "{subject_path}/mri/aseg.mgz" -o "{subject_path}/mri/aseg.nii.gz"'
327322
runCmd(mri_cmd, log)
328323

329324
iflogger.info("[ DONE ]")

nipype/interfaces/dtitk/base.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,10 @@ def __init__(self, *args, **kwargs):
4242
rename_idx = classes.index("DTITKRenameMixin")
4343
new_name = classes[rename_idx + 1]
4444
warnings.warn(
45-
"The {} interface has been renamed to {}\n"
45+
f"The {dep_name} interface has been renamed to {new_name}\n"
4646
"Please see the documentation for DTI-TK "
4747
"interfaces, as some inputs have been "
48-
"added or renamed for clarity."
49-
"".format(dep_name, new_name),
48+
"added or renamed for clarity.",
5049
DeprecationWarning,
5150
)
5251
super().__init__(*args, **kwargs)

nipype/interfaces/freesurfer/preprocess.py

+2-10
Original file line numberDiff line numberDiff line change
@@ -729,10 +729,7 @@ def cmdline(self):
729729
outdir = self._get_outdir()
730730
cmd = []
731731
if not os.path.exists(outdir):
732-
cmdstr = "{} -c \"import os; os.makedirs('{}')\"".format(
733-
op.basename(sys.executable),
734-
outdir,
735-
)
732+
cmdstr = f"{op.basename(sys.executable)} -c \"import os; os.makedirs('{outdir}')\""
736733
cmd.extend([cmdstr])
737734
infofile = os.path.join(outdir, "shortinfo.txt")
738735
if not os.path.exists(infofile):
@@ -741,12 +738,7 @@ def cmdline(self):
741738
files = self._get_filelist(outdir)
742739
for infile, outfile in files:
743740
if not os.path.exists(outfile):
744-
single_cmd = "{}{} {} {}".format(
745-
self._cmd_prefix,
746-
self.cmd,
747-
infile,
748-
os.path.join(outdir, outfile),
749-
)
741+
single_cmd = f"{self._cmd_prefix}{self.cmd} {infile} {os.path.join(outdir, outfile)}"
750742
cmd.extend([single_cmd])
751743
return "; ".join(cmd)
752744

nipype/interfaces/freesurfer/tests/test_preprocess.py

+2-8
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,7 @@ def test_fitmsparams(create_files_in_directory):
6565
# .inputs based parameters setting
6666
fit.inputs.in_files = filelist
6767
fit.inputs.out_dir = outdir
68-
assert fit.cmdline == "mri_ms_fitparms {} {} {}".format(
69-
filelist[0],
70-
filelist[1],
71-
outdir,
72-
)
68+
assert fit.cmdline == f"mri_ms_fitparms {filelist[0]} {filelist[1]} {outdir}"
7369

7470
# constructor based parameter setting
7571
fit2 = freesurfer.FitMSParams(
@@ -184,9 +180,7 @@ def test_bbregister(create_files_in_directory):
184180
base, _ = os.path.splitext(base)
185181

186182
assert bbr.cmdline == (
187-
"bbregister --t2 --init-fsl "
188-
"--reg {base}_bbreg_fsaverage.dat "
189-
"--mov {full} --s fsaverage".format(full=filelist[0], base=base)
183+
f"bbregister --t2 --init-fsl --reg {base}_bbreg_fsaverage.dat --mov {filelist[0]} --s fsaverage"
190184
)
191185

192186

nipype/interfaces/freesurfer/tests/test_utils.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -210,10 +210,7 @@ def test_mrisexpand(tmpdir):
210210
nd_res = expand_nd.run()
211211

212212
# Commandlines differ
213-
node_cmdline = (
214-
"mris_expand -T 60 -pial {cwd}/lh.pial {cwd}/lh.smoothwm "
215-
"1 expandtmp".format(cwd=nd_res.runtime.cwd)
216-
)
213+
node_cmdline = f"mris_expand -T 60 -pial {nd_res.runtime.cwd}/lh.pial {nd_res.runtime.cwd}/lh.smoothwm 1 expandtmp"
217214
assert nd_res.runtime.cmdline == node_cmdline
218215

219216
# Check output

nipype/interfaces/freesurfer/utils.py

+6-18
Original file line numberDiff line numberDiff line change
@@ -355,8 +355,7 @@ def _format_arg(self, name, spec, value):
355355
if ext != filemap[value]:
356356
if ext in filemap.values():
357357
raise ValueError(
358-
"Cannot create {} file with extension "
359-
"{}".format(value, ext)
358+
f"Cannot create {value} file with extension {ext}"
360359
)
361360
else:
362361
logger.warning(
@@ -595,8 +594,7 @@ def _format_arg(self, name, spec, value):
595594
if ext != filemap[value]:
596595
if ext in filemap.values():
597596
raise ValueError(
598-
"Cannot create {} file with extension "
599-
"{}".format(value, ext)
597+
f"Cannot create {value} file with extension {ext}"
600598
)
601599
else:
602600
logger.warning(
@@ -998,10 +996,8 @@ def _format_arg(self, name, spec, value):
998996
if len(value) == 2:
999997
return "-fminmax %.3f %.3f" % value
1000998
else:
1001-
return "-fminmax {:.3f} {:.3f} -fmid {:.3f}".format(
1002-
value[0],
1003-
value[2],
1004-
value[1],
999+
return (
1000+
f"-fminmax {value[0]:.3f} {value[2]:.3f} -fmid {value[1]:.3f}"
10051001
)
10061002
elif name == "annot_name" and isdefined(value):
10071003
# Matching annot by name needs to strip the leading hemi and trailing
@@ -1015,11 +1011,7 @@ def _format_arg(self, name, spec, value):
10151011

10161012
def _run_interface(self, runtime):
10171013
if not isdefined(self.inputs.screenshot_stem):
1018-
stem = "{}_{}_{}".format(
1019-
self.inputs.subject_id,
1020-
self.inputs.hemi,
1021-
self.inputs.surface,
1022-
)
1014+
stem = f"{self.inputs.subject_id}_{self.inputs.hemi}_{self.inputs.surface}"
10231015
else:
10241016
stem = self.inputs.screenshot_stem
10251017
stem_args = self.inputs.stem_template_args
@@ -1085,11 +1077,7 @@ def _write_tcl_script(self):
10851077
def _list_outputs(self):
10861078
outputs = self._outputs().get()
10871079
if not isdefined(self.inputs.screenshot_stem):
1088-
stem = "{}_{}_{}".format(
1089-
self.inputs.subject_id,
1090-
self.inputs.hemi,
1091-
self.inputs.surface,
1092-
)
1080+
stem = f"{self.inputs.subject_id}_{self.inputs.hemi}_{self.inputs.surface}"
10931081
else:
10941082
stem = self.inputs.screenshot_stem
10951083
stem_args = self.inputs.stem_template_args

nipype/interfaces/fsl/preprocess.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1319,9 +1319,9 @@ def _format_arg(self, name, spec, value):
13191319
if name == "out_intensitymap_file":
13201320
value = self._list_outputs()[name]
13211321
value = [FNIRT.intensitymap_file_basename(v) for v in value]
1322-
assert len(set(value)) == 1, "Found different basenames for {}: {}".format(
1323-
name, value
1324-
)
1322+
assert (
1323+
len(set(value)) == 1
1324+
), f"Found different basenames for {name}: {value}"
13251325
return spec.argstr % value[0]
13261326
if name in list(self.filemap.keys()):
13271327
return spec.argstr % self._list_outputs()[name]

nipype/interfaces/fsl/tests/test_maths.py

+2-6
Original file line numberDiff line numberDiff line change
@@ -401,9 +401,7 @@ def test_binarymaths(create_files_in_directory_plus_output_type):
401401
assert maths.cmdline == f"fslmaths a.nii -{op} b.nii c.nii"
402402
else:
403403
maths.inputs.operand_value = ent
404-
assert maths.cmdline == "fslmaths a.nii -{} {:.8f} c.nii".format(
405-
op, ent
406-
)
404+
assert maths.cmdline == f"fslmaths a.nii -{op} {ent:.8f} c.nii"
407405

408406
# Test that we don't need to ask for an out file
409407
for op in ops:
@@ -461,9 +459,7 @@ def test_tempfilt(create_files_in_directory_plus_output_type):
461459
for win in windows:
462460
filt.inputs.highpass_sigma = win[0]
463461
filt.inputs.lowpass_sigma = win[1]
464-
assert filt.cmdline == "fslmaths a.nii -bptf {:.6f} {:.6f} b.nii".format(
465-
win[0], win[1]
466-
)
462+
assert filt.cmdline == f"fslmaths a.nii -bptf {win[0]:.6f} {win[1]:.6f} b.nii"
467463

468464
# Test that we don't need to ask for an out file
469465
filt = fsl.TemporalFilter(in_file="a.nii", highpass_sigma=64)

nipype/interfaces/fsl/tests/test_preprocess.py

+2-14
Original file line numberDiff line numberDiff line change
@@ -240,12 +240,7 @@ def test_flirt(setup_flirt):
240240
pth, fname, ext = split_filename(infile)
241241
outfile = fsl_name(flirter, "%s_flirt" % fname)
242242
outmat = "%s_flirt.mat" % fname
243-
realcmd = "flirt -in {} -ref {} -out {} -omat {}".format(
244-
infile,
245-
reffile,
246-
outfile,
247-
outmat,
248-
)
243+
realcmd = f"flirt -in {infile} -ref {reffile} -out {outfile} -omat {outmat}"
249244
assert flirter.cmdline == realcmd
250245

251246
# test apply_xfm option
@@ -433,14 +428,7 @@ def test_fnirt(setup_flirt):
433428
" --iout=%s" % (infile, log, flag, strval, reffile, iout)
434429
)
435430
elif item in ("in_fwhm", "intensity_mapping_model"):
436-
cmd = "fnirt --in={} {}={} --logout={} --ref={} --iout={}".format(
437-
infile,
438-
flag,
439-
strval,
440-
log,
441-
reffile,
442-
iout,
443-
)
431+
cmd = f"fnirt --in={infile} {flag}={strval} --logout={log} --ref={reffile} --iout={iout}"
444432
elif item.startswith("apply"):
445433
cmd = (
446434
"fnirt %s=%s "

0 commit comments

Comments
 (0)