@@ -540,27 +540,26 @@ def multibind(
540540 provider = binding .provider
541541 assert isinstance (provider , ListOfProviders )
542542
543- if isinstance (provider , MultiBindProvider ):
543+ if isinstance (provider , MultiBindProvider ) and isinstance ( to , list ) :
544544 try :
545545 element_type = get_args (_punch_through_alias (interface ))[0 ]
546546 except IndexError :
547547 raise InvalidInterface (
548548 f"Use typing.List[T] or list[T] to specify the element type of the list"
549549 )
550- for element in _ensure_iterable ( to ) :
550+ for element in to :
551551 provider .append (self .provider_for (element_type , element ))
552- elif isinstance (provider , MapBindProvider ):
553- if isinstance (to , dict ):
554- try :
555- value_type = get_args (_punch_through_alias (interface ))[1 ]
556- except IndexError :
557- raise InvalidInterface (
558- f"Use typing.Dict[K, V] or dict[K, V] to specify the value type of the dict"
559- )
560- for key , value in to .items ():
561- provider .append (KeyValueProvider (key , self .provider_for (value_type , value )))
562- else :
563- provider .append (self .provider_for (interface , to ))
552+ elif isinstance (provider , MapBindProvider ) and isinstance (to , dict ):
553+ try :
554+ value_type = get_args (_punch_through_alias (interface ))[1 ]
555+ except IndexError :
556+ raise InvalidInterface (
557+ f"Use typing.Dict[K, V] or dict[K, V] to specify the value type of the dict"
558+ )
559+ for key , value in to .items ():
560+ provider .append (KeyValueProvider (key , self .provider_for (value_type , value )))
561+ else :
562+ provider .append (self .provider_for (interface , to ))
564563
565564 def install (self , module : _InstallableModuleType ) -> None :
566565 """Install a module into this binder.
0 commit comments