diff --git a/.gitignore b/.gitignore index d13ba45394..6bfa033cd7 100644 --- a/.gitignore +++ b/.gitignore @@ -150,3 +150,4 @@ $RECYCLE.BIN/ # Windows shortcuts *.lnk +.vscode/settings.json diff --git a/requirements.txt b/requirements.txt index 870efa8225..adef562a83 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ attrs -sqlalchemy +SQLAlchemy>=1.4.0 pathlib_mate requests diff --git a/uszipcode/pkg/sqlalchemy_mate/pt.py b/uszipcode/pkg/sqlalchemy_mate/pt.py index 0fa7d3bbfb..c44168a379 100755 --- a/uszipcode/pkg/sqlalchemy_mate/pt.py +++ b/uszipcode/pkg/sqlalchemy_mate/pt.py @@ -7,9 +7,9 @@ from sqlalchemy import select, Table from sqlalchemy.orm import sessionmaker, Query -from sqlalchemy.ext.declarative.api import DeclarativeMeta +from sqlalchemy.orm import DeclarativeMeta from sqlalchemy.sql.selectable import Select -from sqlalchemy.engine.result import ResultProxy +from sqlalchemy.engine.result import Result try: from .utils import execute_query_return_result_proxy @@ -34,7 +34,7 @@ def from_sql(sql, engine, limit=None): .. note:: 注意, from_db_cursor是从原生的数据库游标通过调用fetchall()方法来获取数据。 - 而sqlalchemy返回的是ResultProxy类。所以我们需要从中获取游标 + 而sqlalchemy返回的是Result类。所以我们需要从中获取游标 至于为什么不能直接使用 from_db_cursor(engine.execute(sql).cursor) 的语法 我也不知道为什么. """ @@ -144,7 +144,7 @@ def from_everything(everything, engine, limit=None): if isinstance(everything, Select): return from_sql(everything, engine, limit=limit) - if isinstance(everything, ResultProxy): + if isinstance(everything, Result): return from_resultproxy(everything) if isinstance(everything, list):