From 16fd2e86daf59c4ed7f29c6de20716013c6fd1e1 Mon Sep 17 00:00:00 2001 From: Steven Maude Date: Fri, 12 Dec 2025 14:50:39 +0000 Subject: [PATCH 1/2] Update requirements --- pyproject.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 22d0b4e..59b8bbd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,9 +25,9 @@ classifiers = [ "Topic :: Database :: Front-Ends", ] dependencies = [ - "requests", - "six", - "sqlalchemy==1.4.54", + "requests==2.32.5", + "six==1.17.0", + "sqlalchemy==2.0.45", "alembic==1.17.2", ] From 58f73fe78e70c77cec4ca6a6236a8e83f15a3ad5 Mon Sep 17 00:00:00 2001 From: Steven Maude Date: Fri, 12 Dec 2025 14:58:58 +0000 Subject: [PATCH 2/2] Fix for SQLAlchemy v2 --- scraperwiki/sql.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/scraperwiki/sql.py b/scraperwiki/sql.py index 3813236..15d1316 100644 --- a/scraperwiki/sql.py +++ b/scraperwiki/sql.py @@ -144,7 +144,12 @@ def execute(query, data=None): if data is None: data = [] - result = connection.execute(query, data) + if isinstance(data, list): + data = tuple(data) + elif not isinstance(data, (tuple, dict)): + data = (data,) + + result = connection.exec_driver_sql(query, data) _State.table = None _State.metadata = None @@ -169,11 +174,16 @@ def select(query, data=None): if data is None: data = [] - result = connection.execute('select ' + query, data) + if isinstance(data, list): + data = tuple(data) + elif not isinstance(data, (tuple, dict)): + data = (data,) + + result = connection.exec_driver_sql('select ' + query, data) rows = [] for row in result: - rows.append(dict(list(row.items()))) + rows.append(dict(list(row._mapping.items()))) return rows @@ -265,7 +275,7 @@ def save_var(name, value): # value_blob=Blob(value), type=column_type.__visit_name__.lower()) - stmt = vars_table.insert(prefixes=['OR REPLACE']).values(**values) + stmt = sqlalchemy.insert(vars_table).prefix_with('OR REPLACE').values(**values) connection.execute(stmt) _State.new_transaction() @@ -289,7 +299,7 @@ def get_var(name, default=None): return None table = sqlalchemy.Table(_State.vars_table_name, _State.metadata) - s = sqlalchemy.select([table.c.value_blob, table.c.type]) + s = sqlalchemy.select(table.c.value_blob, table.c.type) s = s.where(table.c.name == name) result = connection.execute(s).fetchone()