mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2025-07-17 11:32:21 +03:00
fixup! Add support for async generator injections
This commit is contained in:
parent
c82cc343dd
commit
e55d11e6ab
|
@ -11,6 +11,7 @@ from .wiring import _Marker
|
||||||
cimport cython
|
cimport cython
|
||||||
|
|
||||||
|
|
||||||
|
@cython.internal
|
||||||
@cython.no_gc
|
@cython.no_gc
|
||||||
cdef class KWPair:
|
cdef class KWPair:
|
||||||
cdef str name
|
cdef str name
|
||||||
|
|
|
@ -1046,9 +1046,9 @@ from ._cwiring import DependencyResolver # noqa: E402
|
||||||
def _get_async_patched(fn: F, patched: PatchedCallable) -> F:
|
def _get_async_patched(fn: F, patched: PatchedCallable) -> F:
|
||||||
@functools.wraps(fn)
|
@functools.wraps(fn)
|
||||||
async def _patched(*args: Any, **raw_kwargs: Any) -> Any:
|
async def _patched(*args: Any, **raw_kwargs: Any) -> Any:
|
||||||
dr = DependencyResolver(raw_kwargs, patched.injections, patched.closing)
|
resolver = DependencyResolver(raw_kwargs, patched.injections, patched.closing)
|
||||||
|
|
||||||
async with dr as kwargs:
|
async with resolver as kwargs:
|
||||||
return await fn(*args, **kwargs)
|
return await fn(*args, **kwargs)
|
||||||
|
|
||||||
return cast(F, _patched)
|
return cast(F, _patched)
|
||||||
|
@ -1058,9 +1058,9 @@ def _get_async_patched(fn: F, patched: PatchedCallable) -> F:
|
||||||
def _get_async_gen_patched(fn: F, patched: PatchedCallable) -> F:
|
def _get_async_gen_patched(fn: F, patched: PatchedCallable) -> F:
|
||||||
@functools.wraps(fn)
|
@functools.wraps(fn)
|
||||||
async def _patched(*args: Any, **raw_kwargs: Any) -> AsyncIterator[Any]:
|
async def _patched(*args: Any, **raw_kwargs: Any) -> AsyncIterator[Any]:
|
||||||
dr = DependencyResolver(raw_kwargs, patched.injections, patched.closing)
|
resolver = DependencyResolver(raw_kwargs, patched.injections, patched.closing)
|
||||||
|
|
||||||
async with dr as kwargs:
|
async with resolver as kwargs:
|
||||||
async for obj in fn(*args, **kwargs):
|
async for obj in fn(*args, **kwargs):
|
||||||
yield obj
|
yield obj
|
||||||
|
|
||||||
|
@ -1070,9 +1070,9 @@ def _get_async_gen_patched(fn: F, patched: PatchedCallable) -> F:
|
||||||
def _get_sync_patched(fn: F, patched: PatchedCallable) -> F:
|
def _get_sync_patched(fn: F, patched: PatchedCallable) -> F:
|
||||||
@functools.wraps(fn)
|
@functools.wraps(fn)
|
||||||
def _patched(*args: Any, **raw_kwargs: Any) -> Any:
|
def _patched(*args: Any, **raw_kwargs: Any) -> Any:
|
||||||
dr = DependencyResolver(raw_kwargs, patched.injections, patched.closing)
|
resolver = DependencyResolver(raw_kwargs, patched.injections, patched.closing)
|
||||||
|
|
||||||
with dr as kwargs:
|
with resolver as kwargs:
|
||||||
return fn(*args, **kwargs)
|
return fn(*args, **kwargs)
|
||||||
|
|
||||||
return cast(F, _patched)
|
return cast(F, _patched)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user