@@ -363,6 +363,14 @@ def decorator(wp: Callable[P, T]) -> Callable[P, T]:
363363
364364 return decorator (wrapped ) if wrapped else decorator
365365
366+ def create_metadata [** P , T ](
367+ self ,
368+ wrapped : Callable [P , T ],
369+ / ,
370+ threadsafe : bool | None = None ,
371+ ) -> InjectMetadata [P , T ]:
372+ return InjectMetadata (wrapped , threadsafe ).listen (self )
373+
366374 if TYPE_CHECKING : # pragma: no cover
367375
368376 @overload
@@ -387,7 +395,7 @@ def make_injected_function[**P, T](
387395 / ,
388396 threadsafe : bool | None = None ,
389397 ) -> InjectedFunction [P , T ]:
390- metadata = self ._metadata (wrapped , threadsafe )
398+ metadata = self .create_metadata (wrapped , threadsafe )
391399
392400 if iscoroutinefunction (wrapped ):
393401 return AsyncInjectedFunction (metadata ) # type: ignore[arg-type, return-value]
@@ -400,7 +408,7 @@ def make_async_factory[T](
400408 / ,
401409 threadsafe : bool | None = None ,
402410 ) -> Callable [..., Awaitable [T ]]:
403- return self ._metadata (wrapped , threadsafe ).acall
411+ return self .create_metadata (wrapped , threadsafe ).acall
404412
405413 async def afind_instance [T ](
406414 self ,
@@ -514,7 +522,7 @@ def aget_lazy_instance[T, Default](
514522 threadsafe : bool | None = None ,
515523 ) -> Awaitable [T | Default ]:
516524 return SimpleAwaitable (
517- self ._metadata (
525+ self .create_metadata (
518526 lambda instance = default : instance ,
519527 threadsafe = threadsafe ,
520528 )
@@ -550,7 +558,7 @@ def get_lazy_instance[T, Default](
550558 threadsafe : bool | None = None ,
551559 ) -> Invertible [T | Default ]:
552560 return SimpleInvertible (
553- self ._metadata (
561+ self .create_metadata (
554562 lambda instance = default : instance ,
555563 threadsafe = threadsafe ,
556564 )
@@ -681,13 +689,6 @@ def dispatch(self, event: Event) -> Iterator[None]:
681689 finally :
682690 self .__debug (event )
683691
684- def _metadata [** P , T ](
685- self ,
686- wrapped : Callable [P , T ],
687- threadsafe : bool | None = None ,
688- ) -> InjectMetadata [P , T ]:
689- return InjectMetadata (wrapped , threadsafe ).listen (self )
690-
691692 def _iter_locators (self ) -> Iterator [Locator ]:
692693 for module in self .__modules :
693694 yield from module ._iter_locators ()
0 commit comments