Skip to content

Commit 9291b29

Browse files
committed
strings have an __iter__ method on Python 3, but we don't want to consider them iterable
1 parent 4d5c0f4 commit 9291b29

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

roundup/backends/back_anydbm.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -957,7 +957,7 @@ def create_inner(self, **propvalues):
957957
elif isinstance(prop, hyperdb.Multilink):
958958
if value is None:
959959
value = []
960-
if not hasattr(value, '__iter__'):
960+
if not hasattr(value, '__iter__') or type(value) == type(''):
961961
raise TypeError('new property "%s" not an iterable of ids'%key)
962962

963963
# clean up and validate the list of links
@@ -1265,7 +1265,7 @@ def set_inner(self, nodeid, **propvalues):
12651265
elif isinstance(prop, hyperdb.Multilink):
12661266
if value is None:
12671267
value = []
1268-
if not hasattr(value, '__iter__'):
1268+
if not hasattr(value, '__iter__') or type(value) == type(''):
12691269
raise TypeError('new property "%s" not an iterable of'
12701270
' ids'%propname)
12711271
link_class = self.properties[propname].classname

roundup/backends/rdbms_common.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1614,7 +1614,7 @@ def create_inner(self, **propvalues):
16141614
elif isinstance(prop, Multilink):
16151615
if value is None:
16161616
value = []
1617-
if not hasattr(value, '__iter__'):
1617+
if not hasattr(value, '__iter__') or type(value) == type(''):
16181618
raise TypeError('new property "%s" not an iterable of ids'%key)
16191619
# clean up and validate the list of links
16201620
link_class = self.properties[key].classname
@@ -1874,7 +1874,7 @@ def set_inner(self, nodeid, **propvalues):
18741874
elif isinstance(prop, Multilink):
18751875
if value is None:
18761876
value = []
1877-
if not hasattr(value, '__iter__'):
1877+
if not hasattr(value, '__iter__') or type(value) == type(''):
18781878
raise TypeError('new property "%s" not an iterable of'
18791879
' ids'%propname)
18801880
link_class = self.properties[propname].classname

0 commit comments

Comments
 (0)