mirror of https://github.com/morpheus65535/bazarr
Changed row factory.
This commit is contained in:
parent
086f54a659
commit
2565a0395f
|
@ -66,11 +66,12 @@ class Sqlite3Worker(threading.Thread):
|
||||||
file_name, check_same_thread=False,
|
file_name, check_same_thread=False,
|
||||||
detect_types=sqlite3.PARSE_DECLTYPES)
|
detect_types=sqlite3.PARSE_DECLTYPES)
|
||||||
if as_dict:
|
if as_dict:
|
||||||
self.sqlite3_conn.row_factory = dict_factory
|
self.sqlite3_conn.row_factory = sqlite3.Row
|
||||||
self.sqlite3_cursor = self.sqlite3_conn.cursor()
|
self.sqlite3_cursor = self.sqlite3_conn.cursor()
|
||||||
self.sql_queue = Queue.Queue(maxsize=max_queue_size)
|
self.sql_queue = Queue.Queue(maxsize=max_queue_size)
|
||||||
self.results = {}
|
self.results = {}
|
||||||
self.max_queue_size = max_queue_size
|
self.max_queue_size = max_queue_size
|
||||||
|
self.as_dict = as_dict
|
||||||
self.exit_set = False
|
self.exit_set = False
|
||||||
# Token that is put into queue when close() is called.
|
# Token that is put into queue when close() is called.
|
||||||
self.exit_token = str(uuid.uuid4())
|
self.exit_token = str(uuid.uuid4())
|
||||||
|
@ -126,7 +127,10 @@ class Sqlite3Worker(threading.Thread):
|
||||||
if only_one:
|
if only_one:
|
||||||
self.results[token] = self.sqlite3_cursor.fetchone()
|
self.results[token] = self.sqlite3_cursor.fetchone()
|
||||||
else:
|
else:
|
||||||
self.results[token] = self.sqlite3_cursor.fetchall()
|
if self.as_dict:
|
||||||
|
self.results[token] = [dict(row) for row in self.sqlite3_cursor.fetchall()]
|
||||||
|
else:
|
||||||
|
self.results[token] = self.sqlite3_cursor.fetchall()
|
||||||
except sqlite3.Error as err:
|
except sqlite3.Error as err:
|
||||||
# Put the error into the output queue since a response
|
# Put the error into the output queue since a response
|
||||||
# is required.
|
# is required.
|
||||||
|
@ -183,9 +187,11 @@ class Sqlite3Worker(threading.Thread):
|
||||||
Args:
|
Args:
|
||||||
query: The sql string using ? for placeholders of dynamic values.
|
query: The sql string using ? for placeholders of dynamic values.
|
||||||
values: A tuple of values to be replaced into the ? of the query.
|
values: A tuple of values to be replaced into the ? of the query.
|
||||||
|
only_one: A boolean to use fetchone() instead of fetchall().
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
If it's a select query it will return the results of the query.
|
If it's a select query it will return the results of the query.
|
||||||
|
Normally it return a list of lists/dicts but if only_one it return a single list/dict.
|
||||||
"""
|
"""
|
||||||
if self.exit_set:
|
if self.exit_set:
|
||||||
LOGGER.debug("Exit set, not running: %s, %s", query, values)
|
LOGGER.debug("Exit set, not running: %s, %s", query, values)
|
||||||
|
@ -201,10 +207,3 @@ class Sqlite3Worker(threading.Thread):
|
||||||
return self.query_results(token)
|
return self.query_results(token)
|
||||||
else:
|
else:
|
||||||
self.sql_queue.put((token, query, values, only_one), timeout=5)
|
self.sql_queue.put((token, query, values, only_one), timeout=5)
|
||||||
|
|
||||||
|
|
||||||
def dict_factory(cursor, row):
|
|
||||||
d = {}
|
|
||||||
for idx, col in enumerate(cursor.description):
|
|
||||||
d[col[0]] = row[idx]
|
|
||||||
return d
|
|
||||||
|
|
Loading…
Reference in New Issue