Skip to content

Commit 68d692a

Browse files
committed
checking if iterfield is collections.sequence (not range only)
1 parent 6b949b0 commit 68d692a

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

nipype/interfaces/base.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import simplejson as json
3333
from dateutil.parser import parse as parseutc
3434
from packaging.version import Version
35+
import collections
3536

3637
from .. import config, logging, LooseVersion, __version__
3738
from ..utils.provenance import write_provenance
@@ -2063,7 +2064,10 @@ def validate(self, object, name, value):
20632064
return Undefined
20642065
newvalue = value
20652066

2066-
if not isinstance(value, list) \
2067+
if isinstance(value, collections.Sequence):
2068+
newvalue = list(value)
2069+
2070+
if not isinstance(value, collections.Sequence) \
20672071
or (self.inner_traits() and
20682072
isinstance(self.inner_traits()[0].trait_type,
20692073
traits.List) and not
@@ -2072,10 +2076,7 @@ def validate(self, object, name, value):
20722076
isinstance(value, list) and
20732077
value and not
20742078
isinstance(value[0], list)):
2075-
if isinstance(value, range):
2076-
newvalue = list(value)
2077-
else:
2078-
newvalue = [value]
2079+
newvalue = [value]
20792080
value = super(MultiPath, self).validate(object, name, newvalue)
20802081

20812082
if len(value) > 0:

nipype/pipeline/engine/tests/test_engine.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,7 @@ def test_mapnode_iterfield_check():
457457

458458

459459
@pytest.mark.parametrize("x_inp, f_exp", [
460-
(3, [9]), ([2, 3], [4, 9]), (range(3), [0, 1, 4])
460+
(3, [9]), ([2, 3], [4, 9]), ((2,3), [4,9]), (range(3), [0, 1, 4])
461461
])
462462
def test_mapnode_iterfield_type(x_inp, f_exp):
463463
from nipype import MapNode, Function

0 commit comments

Comments
 (0)