Update util.py - fix ensure_tuple instance check
doing isinstance(obj, Sequence) makes calls with keys of dict impossible
Example:
Returns
```
d = {'a':'a', 'b':'b'}
table.upsert(values, d.keys())
```
`dict_keys(['a', 'b'])` is not of instance Sequence, but Iterable, therefore `ensure_tuple(dict_keys(['a', 'b']))` returns (dict_keys(['a', 'b']),)
which leads to invalid iteration.
This commit is contained in:
parent
38a59b921e
commit
bcd20c7eca
@ -1,6 +1,6 @@
|
||||
import six
|
||||
from hashlib import sha1
|
||||
from collections import OrderedDict, Sequence
|
||||
from collections import OrderedDict, Iterable
|
||||
from six.moves.urllib.parse import urlparse
|
||||
|
||||
QUERY_STEP = 1000
|
||||
@ -99,7 +99,7 @@ def ensure_tuple(obj):
|
||||
"""Try and make the given argument into a tuple."""
|
||||
if obj is None:
|
||||
return tuple()
|
||||
if isinstance(obj, Sequence) and not isinstance(obj, six.string_types):
|
||||
if isinstance(obj, Iterable) and not isinstance(obj, six.string_types):
|
||||
return tuple(obj)
|
||||
return obj,
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user