workaround to invalid tag type
tag sometimes contains str type, which causes an error in Python3.
This commit is contained in:
parent
6bb138e483
commit
bfda9fe65e
|
@ -1,6 +1,7 @@
|
||||||
"""
|
"""
|
||||||
Sqlite Inventory
|
Sqlite Inventory
|
||||||
"""
|
"""
|
||||||
|
import six
|
||||||
import sqlite3
|
import sqlite3
|
||||||
import time
|
import time
|
||||||
from threading import RLock
|
from threading import RLock
|
||||||
|
@ -110,7 +111,10 @@ class SqliteInventory(InventoryStorage):
|
||||||
# always use the inventoryLock OUTSIDE of the sqlLock.
|
# always use the inventoryLock OUTSIDE of the sqlLock.
|
||||||
with SqlBulkExecute() as sql:
|
with SqlBulkExecute() as sql:
|
||||||
for objectHash, value in self._inventory.items():
|
for objectHash, value in self._inventory.items():
|
||||||
value = [value[0], value[1], sqlite3.Binary(value[2]), value[3], sqlite3.Binary(value[4])]
|
tag = value[4]
|
||||||
|
if six.PY3 and isinstance(tag, str):
|
||||||
|
tag = tag.encode("utf-8", "replace")
|
||||||
|
value = [value[0], value[1], sqlite3.Binary(value[2]), value[3], sqlite3.Binary(tag)]
|
||||||
sql.execute(
|
sql.execute(
|
||||||
'INSERT INTO inventory VALUES (?, ?, ?, ?, ?, ?)',
|
'INSERT INTO inventory VALUES (?, ?, ?, ?, ?, ?)',
|
||||||
sqlite3.Binary(objectHash), *value)
|
sqlite3.Binary(objectHash), *value)
|
||||||
|
|
Reference in New Issue
Block a user