From: Michael Oliver Date: Wed, 16 Dec 2020 16:49:07 +0000 (-0500) Subject: Improved PEP-484 for AsyncSession.run_sync X-Git-Tag: rel_1_4_0b2~93^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5ed76152ada962b1bfb822d087f1af1ec345ef43;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git Improved PEP-484 for AsyncSession.run_sync ### Description I don't think this needs any test added. ### Checklist This pull request is: - [ ] A documentation / typographical error fix - Good to go, no issue or tests are needed - [x] A short code fix - please include the issue number, and create an issue if none exists, which must include a complete example of the issue. one line code fixes without an issue and demonstration will not be accepted. - Please include: `Fixes: #` in the commit message - please include tests. one line code fixes without tests will not be accepted. - [ ] A new feature implementation - please include the issue number, and create an issue if none exists, which must include a complete example of how the feature would look. - Please include: `Fixes: #` in the commit message - please include tests. Fixes: #5777 **Have a nice day!** Closes: #5778 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5778 Pull-request-sha: 618ddc84d27b9b67f9ae78fd457f94feff1ce160 Change-Id: Id46f70ddc14e8f8d7e402a4b3ce7e934509bef24 --- diff --git a/lib/sqlalchemy/ext/asyncio/session.py b/lib/sqlalchemy/ext/asyncio/session.py index 4ae1fb385e..c21b679543 100644 --- a/lib/sqlalchemy/ext/asyncio/session.py +++ b/lib/sqlalchemy/ext/asyncio/session.py @@ -1,7 +1,7 @@ -from typing import Any from typing import Callable from typing import Mapping from typing import Optional +from typing import TypeVar from . import engine from . import result as _result @@ -14,6 +14,9 @@ from ...sql import Executable from ...util.concurrency import greenlet_spawn +T = TypeVar("T") + + @util.create_proxy_methods( Session, ":class:`_orm.Session`", @@ -102,7 +105,7 @@ class AsyncSession: with_for_update=with_for_update, ) - async def run_sync(self, fn: Callable, *arg, **kw) -> Any: + async def run_sync(self, fn: Callable[..., T], *arg, **kw) -> T: """Invoke the given sync callable passing sync self as the first argument.