skytools.quote_statement(): support list/tuple args too
authorMarko Kreen <markokr@gmail.com>
Fri, 25 Apr 2008 14:45:53 +0000 (14:45 +0000)
committerMarko Kreen <markokr@gmail.com>
Fri, 25 Apr 2008 14:45:53 +0000 (14:45 +0000)
python/skytools/quoting.py

index 8225c7b06127b5602fef612e5674f0232217f512..a0c2c0d89f72ceb00a23065184e8bb31d0d71726 100644 (file)
@@ -34,15 +34,19 @@ def quote_bytea_copy(s):
 
     return quote_copy(quote_bytea_raw(s))
 
-def quote_statement(sql, dict):
+def quote_statement(sql, dict_or_list):
     """Quote whole statement.
 
-    Data values are taken from dict.
+    Data values are taken from dict or list or tuple.
     """
-    xdict = {}
-    for k, v in dict.items():
-        xdict[k] = quote_literal(v)
-    return sql % xdict
+    if hasattr(dict_or_list, 'items'):
+        qvals = {}
+        for k, v in dict_or_list.items():
+            qvals[k] = quote_literal(v)
+    else:
+        qvals = [quote_literal(v) for v in dict_or_list]
+        qvals = tuple(qvals)
+    return sql % qvals
 
 # reserved keywords
 _ident_kwmap = {