Skip to content

Commit 341c5d3

Browse files
committed
fix: datagrabber output order for files
1 parent 68a2e63 commit 341c5d3

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

nipype/interfaces/io.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -538,11 +538,11 @@ def _list_outputs(self):
538538
raise IOError(msg)
539539
else:
540540
warn(msg)
541-
outputs[key].insert(i, None)
541+
outputs[key].append(None)
542542
else:
543543
if self.inputs.sort_filelist:
544544
outfiles.sort()
545-
outputs[key].insert(i, list_to_filename(outfiles))
545+
outputs[key].append(list_to_filename(outfiles))
546546
if any([val is None for val in outputs[key]]):
547547
outputs[key] = []
548548
if len(outputs[key]) == 0:

nipype/interfaces/tests/test_io.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,26 @@ def test_datagrabber():
1515
yield assert_equal, dg.inputs.base_directory, Undefined
1616
yield assert_equal, dg.inputs.template_args,{'outfiles': []}
1717

18+
def test_datagrabber_order():
19+
tempdir = mkdtemp()
20+
file1 = mkstemp(prefix='sub002_L1_R1.q', dir=tempdir)
21+
file2 = mkstemp(prefix='sub002_L1_R2.q', dir=tempdir)
22+
file3 = mkstemp(prefix='sub002_L2_R1.q', dir=tempdir)
23+
file4 = mkstemp(prefix='sub002_L2_R2.q', dir=tempdir)
24+
dg = nio.DataGrabber(infields=['sid'])
25+
dg.inputs.base_directory = tempdir
26+
dg.inputs.template = '%s_L%d_R?.q*'
27+
dg.inputs.template_args = {'outfiles': [['sid', 1], ['sid', 2]]}
28+
dg.inputs.sid = 'sub002'
29+
dg.inputs.sort_filelist = True
30+
res = dg.run()
31+
outfiles = res.outputs.outfiles
32+
yield assert_true, 'sub002_L1_R1' in outfiles[0][0]
33+
yield assert_true, 'sub002_L1_R2' in outfiles[0][1]
34+
yield assert_true, 'sub002_L2_R1' in outfiles[1][0]
35+
yield assert_true, 'sub002_L2_R2' in outfiles[1][1]
36+
shutil.rmtree(tempdir)
37+
1838
def test_datasink():
1939
ds = nio.DataSink()
2040
yield assert_true, ds.inputs.parameterization

0 commit comments

Comments
 (0)