Optimize imports in _cwiring.pyx

This commit is contained in:
ZipFile 2025-02-02 16:54:12 +00:00
parent 37127bcd02
commit fb7018cb78

View File

@ -2,17 +2,15 @@
import asyncio import asyncio
import collections.abc import collections.abc
import functools
import inspect import inspect
import types import types
from . import providers from .wiring import _Marker
from .wiring import _Marker, PatchedCallable
from .providers cimport Provider from .providers cimport Provider, Resource
def _sync_inject(object fn, tuple args, dict kwargs, dict injections, dict closings): def _sync_inject(object fn, tuple args, dict kwargs, dict injections, dict closings, /):
cdef object result cdef object result
cdef dict to_inject cdef dict to_inject
cdef object arg_key cdef object arg_key
@ -29,14 +27,14 @@ def _sync_inject(object fn, tuple args, dict kwargs, dict injections, dict closi
for arg_key, provider in closings.items(): for arg_key, provider in closings.items():
if arg_key in kwargs and not isinstance(kwargs[arg_key], _Marker): if arg_key in kwargs and not isinstance(kwargs[arg_key], _Marker):
continue continue
if not isinstance(provider, providers.Resource): if not isinstance(provider, Resource):
continue continue
provider.shutdown() provider.shutdown()
return result return result
async def _async_inject(object fn, tuple args, dict kwargs, dict injections, dict closings): async def _async_inject(object fn, tuple args, dict kwargs, dict injections, dict closings, /):
cdef object result cdef object result
cdef dict to_inject cdef dict to_inject
cdef list to_inject_await = [] cdef list to_inject_await = []
@ -66,7 +64,7 @@ async def _async_inject(object fn, tuple args, dict kwargs, dict injections, dic
for arg_key, provider in closings.items(): for arg_key, provider in closings.items():
if arg_key in kwargs and isinstance(kwargs[arg_key], _Marker): if arg_key in kwargs and isinstance(kwargs[arg_key], _Marker):
continue continue
if not isinstance(provider, providers.Resource): if not isinstance(provider, Resource):
continue continue
shutdown = provider.shutdown() shutdown = provider.shutdown()
if _isawaitable(shutdown): if _isawaitable(shutdown):