From 3feb531769cdaa52de9ce432f1f4a1ac3de9ea97 Mon Sep 17 00:00:00 2001 From: Derrick Gilland Date: Tue, 3 Oct 2023 13:13:59 -0400 Subject: [PATCH] chore: drop support for sqlalchemy 1.4 --- docs/database.rst | 2 +- setup.cfg | 2 +- src/sqlservice/database.py | 7 +------ src/sqlservice/database_abc.py | 8 +------- tox.ini | 8 +------- 5 files changed, 5 insertions(+), 22 deletions(-) diff --git a/docs/database.rst b/docs/database.rst index af2c80d..2294540 100644 --- a/docs/database.rst +++ b/docs/database.rst @@ -47,7 +47,7 @@ Engine Nothing fancy here. The :attr:`sqlservice.database.Database.engine`` is created using ``sqlalchemy.create_engine`` under the hood using the database settings provided. Typically, the engine won't be used directly. Instead, database connections and sessions can be created using these methods: -- :meth:`sqlservice.database.Database.connect` - Returns an instance of ``sqlalchemy.future.Connection`` +- :meth:`sqlservice.database.Database.connect` - Returns an instance of ``sqlalchemy.Connection`` - :meth:`sqlservice.database.Database.session` - Returns an instance of :class:`sqlservice.session.Session`` which is a subclass of ``sqlalchemy.orm.Session`` - :meth:`sqlservice.database.Database.begin` - Begins a transaction and returns an instance of :class:`sqlservice.session.Session`` diff --git a/setup.cfg b/setup.cfg index 6275e23..c244f5d 100644 --- a/setup.cfg +++ b/setup.cfg @@ -31,7 +31,7 @@ package_dir = packages = find: python_requires = >=3.7 install_requires = - SQLAlchemy>=1.4.12 + SQLAlchemy>=2.0 [options.packages.find] where = src diff --git a/src/sqlservice/database.py b/src/sqlservice/database.py index 04bdb5a..58ce2bc 100644 --- a/src/sqlservice/database.py +++ b/src/sqlservice/database.py @@ -10,6 +10,7 @@ import typing as t from sqlalchemy import create_engine, select +from sqlalchemy.engine import Connection, Engine from sqlalchemy.exc import DBAPIError from sqlalchemy.pool import Pool @@ -19,12 +20,6 @@ from .session import Session -try: - from sqlalchemy.future import Connection, Engine -except ImportError: # pragma: no cover - from sqlalchemy.engine import Connection, Engine # type: ignore - - class Database(DatabaseABC): """ Database engine and ORM session management class. diff --git a/src/sqlservice/database_abc.py b/src/sqlservice/database_abc.py index 69eafbb..77598bf 100644 --- a/src/sqlservice/database_abc.py +++ b/src/sqlservice/database_abc.py @@ -9,7 +9,7 @@ import typing as t from sqlalchemy import MetaData, Table -from sqlalchemy.engine import URL +from sqlalchemy.engine import Connection, Engine, URL from sqlalchemy.ext.asyncio import AsyncConnection, AsyncEngine, AsyncSession from sqlalchemy.orm import DeclarativeMeta, Session, sessionmaker @@ -17,12 +17,6 @@ from .model import ModelBase -try: - from sqlalchemy.future import Connection, Engine -except ImportError: # pragma: no cover - from sqlalchemy.engine import Connection, Engine # type: ignore - - class DatabaseABC(ABC): settings: DatabaseSettings session_class: t.Union[t.Type[Session], t.Type[AsyncSession]] diff --git a/tox.ini b/tox.ini index e60b405..c7ee4f7 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py37, py38, py39, py310, py311, py{37}-sqlalchemy{14} +envlist = py37, py38, py39, py310, py311 isolated_build = true [gh-actions] @@ -17,9 +17,3 @@ commands = {posargs:inv ci} setenv = TOX_ENV_SITE_PACKAGES_DIR = {envsitepackagesdir} -deps = - sqlalchemy14: sqlalchemy==1.4.* - -[testenv:py{37}-sqlalchemy{14}] -commands = - {posargs:inv test}