mirror of
https://github.com/simon987/hexlib.git
synced 2025-04-19 17:56:43 +00:00
bugfix
This commit is contained in:
parent
1de2bf81cd
commit
3357da764c
18
hexlib/db.py
18
hexlib/db.py
@ -44,22 +44,24 @@ class Table:
|
|||||||
conn.row_factory = sqlite3.Row
|
conn.row_factory = sqlite3.Row
|
||||||
|
|
||||||
sql = "INSERT INTO %s (id,%s) VALUES ('%s',%s)" % \
|
sql = "INSERT INTO %s (id,%s) VALUES ('%s',%s)" % \
|
||||||
(self._table, ",".join(value.keys()), key, ",".join(_sqlite_value(v) for v in value.values()))
|
(self._table, ",".join(value.keys()), key, ",".join("?" for _ in value.values()))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
conn.execute(sql)
|
conn.execute(sql, list(_sqlite_value(v) for v in value.values()))
|
||||||
except sqlite3.OperationalError:
|
except sqlite3.OperationalError:
|
||||||
conn.execute(
|
conn.execute(
|
||||||
"create table if not exists %s (id text primary key,%s)" %
|
"create table if not exists %s (id text primary key,%s)" %
|
||||||
(self._table, ",".join("%s %s" % (k, _sqlite_type(v)) for k, v in value.items()))
|
(self._table, ",".join("%s %s" % (k, _sqlite_type(v)) for k, v in value.items()))
|
||||||
)
|
)
|
||||||
conn.execute(sql)
|
conn.execute(sql, list(_sqlite_value(v) for v in value.values()))
|
||||||
|
|
||||||
except sqlite3.IntegrityError:
|
except sqlite3.IntegrityError:
|
||||||
|
sql = "UPDATE %s SET (%s) = (%s) WHERE id=?" \
|
||||||
|
% (self._table, ",".join(value.keys()), ",".join("?" for _ in value.values()))
|
||||||
|
args = [key]
|
||||||
|
args.extend(_sqlite_value(v) for v in value.values())
|
||||||
conn.execute(
|
conn.execute(
|
||||||
"UPDATE %s SET (%s) = (%s) WHERE id=?" %
|
sql,
|
||||||
(self._table, ",".join(value.keys()), ",".join(_sqlite_value(v) for v in value.values())),
|
args
|
||||||
(key,)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -74,8 +76,6 @@ def _sqlite_type(value):
|
|||||||
|
|
||||||
|
|
||||||
def _sqlite_value(value):
|
def _sqlite_value(value):
|
||||||
if isinstance(value, str):
|
|
||||||
return '"%s"' % value
|
|
||||||
if isinstance(value, bytes):
|
if isinstance(value, bytes):
|
||||||
return _sqlite_value(value.decode("unicode_escape"))
|
return _sqlite_value(value.decode("unicode_escape"))
|
||||||
return str(value)
|
return str(value)
|
||||||
|
2
setup.py
2
setup.py
@ -2,7 +2,7 @@ from setuptools import setup
|
|||||||
|
|
||||||
setup(
|
setup(
|
||||||
name="hexlib",
|
name="hexlib",
|
||||||
version="1.3",
|
version="1.4",
|
||||||
description="Misc utility methods",
|
description="Misc utility methods",
|
||||||
author="simon987",
|
author="simon987",
|
||||||
author_email="me@simon987.net",
|
author_email="me@simon987.net",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user