From 7823a14bdfae570570df0d47d36b5c4650dbab70 Mon Sep 17 00:00:00 2001 From: goodspark Date: Mon, 19 Aug 2024 18:50:31 -0700 Subject: [PATCH] Update SQLAlchemy factory base to support generic typing This extends https://github.com/FactoryBoy/factory_boy/pull/1059 to support SQLAlchemy as well. --- docs/changelog.rst | 2 +- factory/alchemy.py | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index 29475a92..03a80188 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -6,7 +6,7 @@ ChangeLog 3.3.2 (unreleased) ------------------ -- Nothing changed yet. +- Add typing information to SQLAlchemy model factory 3.3.1 (2024-08-18) diff --git a/factory/alchemy.py b/factory/alchemy.py index e782fbd8..10ed4c1c 100644 --- a/factory/alchemy.py +++ b/factory/alchemy.py @@ -1,5 +1,7 @@ # Copyright: See the LICENSE file. +from typing import TypeVar + from sqlalchemy.exc import IntegrityError from sqlalchemy.orm.exc import NoResultFound @@ -12,6 +14,7 @@ SESSION_PERSISTENCE_COMMIT, SESSION_PERSISTENCE_FLUSH, ] +T = TypeVar('T') class SQLAlchemyOptions(base.FactoryOptions): @@ -43,7 +46,7 @@ def _build_default_options(self): ] -class SQLAlchemyModelFactory(base.Factory): +class SQLAlchemyModelFactory(base.Factory[T]): """Factory for SQLAlchemy models. """ _options_class = SQLAlchemyOptions