Mercurial > p > roundup > code
changeset 5467:630a00b20394
strings have an __iter__ method on Python 3, but we don't want to consider them iterable
| author | Christof Meerwald <cmeerw@cmeerw.org> |
|---|---|
| date | Sat, 28 Jul 2018 20:41:06 +0100 |
| parents | 09966de4d3f6 |
| children | 0cde8a595893 |
| files | roundup/backends/back_anydbm.py roundup/backends/rdbms_common.py |
| diffstat | 2 files changed, 4 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/roundup/backends/back_anydbm.py Sat Jul 28 20:34:31 2018 +0100 +++ b/roundup/backends/back_anydbm.py Sat Jul 28 20:41:06 2018 +0100 @@ -957,7 +957,7 @@ elif isinstance(prop, hyperdb.Multilink): if value is None: value = [] - if not hasattr(value, '__iter__'): + if not hasattr(value, '__iter__') or type(value) == type(''): raise TypeError('new property "%s" not an iterable of ids'%key) # clean up and validate the list of links @@ -1265,7 +1265,7 @@ elif isinstance(prop, hyperdb.Multilink): if value is None: value = [] - if not hasattr(value, '__iter__'): + if not hasattr(value, '__iter__') or type(value) == type(''): raise TypeError('new property "%s" not an iterable of' ' ids'%propname) link_class = self.properties[propname].classname
--- a/roundup/backends/rdbms_common.py Sat Jul 28 20:34:31 2018 +0100 +++ b/roundup/backends/rdbms_common.py Sat Jul 28 20:41:06 2018 +0100 @@ -1614,7 +1614,7 @@ elif isinstance(prop, Multilink): if value is None: value = [] - if not hasattr(value, '__iter__'): + if not hasattr(value, '__iter__') or type(value) == type(''): raise TypeError('new property "%s" not an iterable of ids'%key) # clean up and validate the list of links link_class = self.properties[key].classname @@ -1874,7 +1874,7 @@ elif isinstance(prop, Multilink): if value is None: value = [] - if not hasattr(value, '__iter__'): + if not hasattr(value, '__iter__') or type(value) == type(''): raise TypeError('new property "%s" not an iterable of' ' ids'%propname) link_class = self.properties[propname].classname
