Query params can be replaced with a generator.
authorCMDR furrycat <elite@furrycat.net>
Sat, 19 Nov 2016 17:16:14 +0000 (17:16 +0000)
committerCMDR furrycat <elite@furrycat.net>
Sat, 19 Nov 2016 17:16:14 +0000 (17:16 +0000)
db.py

diff --git a/db.py b/db.py
index b7664ac..6f7eeef 100644 (file)
--- a/db.py
+++ b/db.py
@@ -4,6 +4,7 @@ import sqlite3
 import re
 import time
 import uuid
+from types import GeneratorType
 
 log = logging.getLogger('db')
 
@@ -51,10 +52,14 @@ class DBConnection(object):
   def query(self, sql, params = ()):
     if self.dbh is None:
       self.open_db()
-    log.debug(sql.replace('?', '{}').format(*params))
     cursor = self.dbh.cursor()
     try:
-      cursor.execute(sql, params)
+      if isinstance(params, GeneratorType):
+        log.debug(sql)
+        cursor.executemany(sql, params)
+      else:
+        log.debug(sql.replace('?', '{}').format(*params))
+        cursor.execute(sql, params)
       return cursor
     except sqlite3.OperationalError:
       log.exception(sql)