@@ -788,7 +788,7 @@ def readInput(message, default=None, checkBatch=True):
788788 message += " "
789789
790790 if checkBatch and conf .batch :
791- if isinstance (default , ( list , tuple , set ) ):
791+ if isListLike (default ):
792792 options = "," .join (getUnicode (opt , UNICODE_ENCODING ) for opt in default )
793793 elif default :
794794 options = getUnicode (default , UNICODE_ENCODING )
@@ -1888,7 +1888,7 @@ def getUnicode(value, encoding=None, system=False, noneToNull=False):
18881888 if noneToNull and value is None :
18891889 return NULL
18901890
1891- if isinstance (value , ( list , tuple ) ):
1891+ if isListLike (value ):
18921892 value = list (getUnicode (_ , encoding , system , noneToNull ) for _ in value )
18931893 return value
18941894
@@ -2425,7 +2425,7 @@ def arrayizeValue(value):
24252425 Makes a list out of value if it is not already a list or tuple itself
24262426 """
24272427
2428- if not isinstance (value , ( list , tuple ) ):
2428+ if not isListLike (value ):
24292429 value = [value ]
24302430
24312431 return value
@@ -2435,7 +2435,7 @@ def unArrayizeValue(value):
24352435 Makes a value out of iterable if it is a list or tuple itself
24362436 """
24372437
2438- if isinstance (value , ( list , tuple ) ):
2438+ if isListLike (value ):
24392439 value = value [0 ] if len (value ) > 0 else None
24402440
24412441 return value
@@ -2446,12 +2446,19 @@ def flattenValue(value):
24462446 """
24472447
24482448 for i in iter (value ):
2449- if isinstance ( i , ( list , tuple ) ):
2449+ if isListLike ( i ):
24502450 for j in flattenValue (i ):
24512451 yield j
24522452 else :
24532453 yield i
24542454
2455+ def isListLike (value ):
2456+ """
2457+ Returns True if the given value is a list-like instance
2458+ """
2459+
2460+ return isinstance (value , (list , tuple , set , BigArray ))
2461+
24552462def getSortedInjectionTests ():
24562463 """
24572464 Returns prioritized test list by eventually detected DBMS from error
@@ -2784,7 +2791,7 @@ def isNoneValue(value):
27842791
27852792 if isinstance (value , basestring ):
27862793 return value in ("None" , "" )
2787- elif isinstance (value , ( list , tuple ) ):
2794+ elif isListLike (value ):
27882795 return all (isNoneValue (_ ) for _ in value )
27892796 elif isinstance (value , dict ):
27902797 return not any (value )
@@ -3127,7 +3134,7 @@ def applyFunctionRecursively(value, function):
31273134 Applies function recursively through list-like structures
31283135 """
31293136
3130- if isinstance (value , ( list , tuple , set , BigArray ) ):
3137+ if isListLike (value ):
31313138 retVal = [applyFunctionRecursively (_ , function ) for _ in value ]
31323139 else :
31333140 retVal = function (value )
0 commit comments