from typing import TypeVar
from typing import Union
+from typing_extensions import Concatenate
+from typing_extensions import ParamSpec
+
from . import exc as async_exc
from .base import asyncstartablecontext
from .base import GeneratorStartableContext
from ...sql.base import Executable
from ...sql.selectable import TypedReturnsRows
+_P = ParamSpec("_P")
_T = TypeVar("_T", bound=Any)
_Ts = TypeVarTuple("_Ts")
yield result.scalars()
async def run_sync(
- self, fn: Callable[..., _T], *arg: Any, **kw: Any
+ self,
+ fn: Callable[Concatenate[Connection, _P], _T],
+ *arg: _P.args,
+ **kw: _P.kwargs,
) -> _T:
"""Invoke the given synchronous (i.e. not async) callable,
passing a synchronous-style :class:`_engine.Connection` as the first
""" # noqa: E501
- return await greenlet_spawn(fn, self._proxied, *arg, **kw)
+ return await greenlet_spawn(
+ fn, self._proxied, *arg, _require_await=False, **kw
+ )
def __await__(self) -> Generator[Any, None, AsyncConnection]:
return self.start().__await__()