From 281dadf19f60a878e9654c472fd425a362aeb038 Mon Sep 17 00:00:00 2001 From: Yuchen Jin Date: Tue, 26 Mar 2024 15:33:10 -0500 Subject: [PATCH 1/2] Fix #1318 Make the typehint of `SQLAlchemy.relationship` consistent with `sqlalchemy.orm.relationship`. --- src/flask_sqlalchemy/extension.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/flask_sqlalchemy/extension.py b/src/flask_sqlalchemy/extension.py index 3429e059..4645f159 100644 --- a/src/flask_sqlalchemy/extension.py +++ b/src/flask_sqlalchemy/extension.py @@ -952,9 +952,7 @@ def _set_rel_query(self, kwargs: dict[str, t.Any]) -> None: backref[1].setdefault("query_class", self.Query) - def relationship( - self, *args: t.Any, **kwargs: t.Any - ) -> sa_orm.RelationshipProperty[t.Any]: + def relationship(self, *args: t.Any, **kwargs: t.Any) -> sa_orm.Relationship[t.Any]: """A :func:`sqlalchemy.orm.relationship` that applies this extension's :attr:`Query` class for dynamic relationships and backrefs. @@ -976,9 +974,7 @@ def dynamic_loader( self._set_rel_query(kwargs) return sa_orm.dynamic_loader(argument, **kwargs) - def _relation( - self, *args: t.Any, **kwargs: t.Any - ) -> sa_orm.RelationshipProperty[t.Any]: + def _relation(self, *args: t.Any, **kwargs: t.Any) -> sa_orm.Relationship[t.Any]: """A :func:`sqlalchemy.orm.relationship` that applies this extension's :attr:`Query` class for dynamic relationships and backrefs. From e0710c3d5c12994441a1b47bc6bcc142999cbae3 Mon Sep 17 00:00:00 2001 From: Yuchen Jin Date: Tue, 26 Mar 2024 15:34:36 -0500 Subject: [PATCH 2/2] Fix an issue when `tox p` fails because `mypy` is forbidden. This issue may be caused by upgrade of `tox>=4`. My tox version is 4.12.0. See details here: https://stackoverflow.com/a/47716994/8266012 --- tox.ini | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tox.ini b/tox.ini index 7085991f..1915efe3 100644 --- a/tox.ini +++ b/tox.ini @@ -23,12 +23,14 @@ commands = pytest -v --tb=short --basetemp={envtmpdir} {posargs} deps = pre-commit skip_install = true commands = pre-commit run --all-files +allowlist_externals = mypy [testenv:typing] deps = -r requirements/mypy.txt commands = mypy --python-version 3.8 mypy --python-version 3.11 +allowlist_externals = mypy [testenv:docs] deps = -r requirements/docs.txt