<!-- Provide a general summary of your proposed changes in the Title field above -->
### Description
<!-- Describe your changes in detail -->
I don't think this needs any test added.
### Checklist
<!-- go over following points. check them with an `x` if they do apply, (they turn into clickable checkboxes once the PR is submitted, so no need to do everything at once)
-->
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: #<issue number>` 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: #<issue number>` 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
-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
from ...util.concurrency import greenlet_spawn
+T = TypeVar("T")
+
+
@util.create_proxy_methods(
Session,
":class:`_orm.Session`",
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.