7373 ModuleLockError ,
7474 ModuleNotUsedError ,
7575 NoInjectable ,
76+ SkipInjectable ,
7677)
7778
7879"""
@@ -620,7 +621,7 @@ async def aget_instance[T](
620621 async def aget_instance (self , cls , default = None ): # type: ignore[no-untyped-def]
621622 try :
622623 return await self .afind_instance (cls )
623- except KeyError :
624+ except ( KeyError , SkipInjectable ) :
624625 return default
625626
626627 @overload
@@ -640,7 +641,7 @@ def get_instance[T](
640641 def get_instance (self , cls , default = None ): # type: ignore[no-untyped-def]
641642 try :
642643 return self .find_instance (cls )
643- except KeyError :
644+ except ( KeyError , SkipInjectable ) :
644645 return default
645646
646647 @overload
@@ -866,29 +867,28 @@ class Dependencies:
866867 lazy_mapping : Lazy [Mapping [str , Injectable [Any ]]]
867868
868869 def __iter__ (self ) -> Iterator [tuple [str , Any ]]:
869- for name , injectable in self .mapping . items ():
870- instance = injectable . get_instance ()
871- yield name , instance
870+ for name , injectable in self .items ():
871+ with suppress ( SkipInjectable ):
872+ yield name , injectable . get_instance ()
872873
873874 async def __aiter__ (self ) -> AsyncIterator [tuple [str , Any ]]:
874- for name , injectable in self .mapping . items ():
875- instance = await injectable . aget_instance ()
876- yield name , instance
875+ for name , injectable in self .items ():
876+ with suppress ( SkipInjectable ):
877+ yield name , await injectable . aget_instance ()
877878
878879 @property
879880 def are_resolved (self ) -> bool :
880881 return self .lazy_mapping .is_set
881882
882- @property
883- def mapping (self ) -> Mapping [str , Injectable [Any ]]:
884- return ~ self .lazy_mapping
885-
886883 async def aget_arguments (self ) -> dict [str , Any ]:
887884 return {key : value async for key , value in self }
888885
889886 def get_arguments (self ) -> dict [str , Any ]:
890887 return dict (self )
891888
889+ def items (self ) -> Iterator [tuple [str , Injectable [Any ]]]:
890+ return iter ((~ self .lazy_mapping ).items ())
891+
892892 @classmethod
893893 def from_iterable (cls , iterable : Iterable [tuple [str , Injectable [Any ]]]) -> Self :
894894 lazy_mapping = Lazy (lambda : dict (iterable ))
0 commit comments