2222def iter_multi_items (
2323 mapping : (
2424 MultiDict [K , V ]
25- | cabc .Mapping [K , V | cabc . Collection [V ]]
25+ | cabc .Mapping [K , V | list [ V ] | tuple [ V , ...] | set [V ]]
2626 | cabc .Iterable [tuple [K , V ]]
2727 ),
2828) -> cabc .Iterator [tuple [K , V ]]:
@@ -33,11 +33,11 @@ def iter_multi_items(
3333 yield from mapping .items (multi = True )
3434 elif isinstance (mapping , cabc .Mapping ):
3535 for key , value in mapping .items ():
36- if isinstance (value , cabc . Collection ) and not isinstance ( value , str ):
36+ if isinstance (value , ( list , tuple , set ) ):
3737 for v in value :
3838 yield key , v
3939 else :
40- yield key , value # type: ignore[misc]
40+ yield key , value
4141 else :
4242 yield from mapping
4343
@@ -182,7 +182,7 @@ def __init__(
182182 self ,
183183 mapping : (
184184 MultiDict [K , V ]
185- | cabc .Mapping [K , V | cabc . Collection [V ]]
185+ | cabc .Mapping [K , V | list [ V ] | tuple [ V , ...] | set [V ]]
186186 | cabc .Iterable [tuple [K , V ]]
187187 | None
188188 ) = None ,
@@ -194,7 +194,7 @@ def __init__(
194194 elif isinstance (mapping , cabc .Mapping ):
195195 tmp = {}
196196 for key , value in mapping .items ():
197- if isinstance (value , cabc . Collection ) and not isinstance ( value , str ):
197+ if isinstance (value , ( list , tuple , set ) ):
198198 value = list (value )
199199
200200 if not value :
@@ -419,7 +419,7 @@ def update( # type: ignore[override]
419419 self ,
420420 mapping : (
421421 MultiDict [K , V ]
422- | cabc .Mapping [K , V | cabc . Collection [V ]]
422+ | cabc .Mapping [K , V | list [ V ] | tuple [ V , ...] | set [V ]]
423423 | cabc .Iterable [tuple [K , V ]]
424424 ),
425425 ) -> None :
@@ -444,7 +444,7 @@ def update( # type: ignore[override]
444444 self .add (key , value )
445445
446446 def __or__ ( # type: ignore[override]
447- self , other : cabc .Mapping [K , V | cabc . Collection [V ]]
447+ self , other : cabc .Mapping [K , V | list [ V ] | tuple [ V , ...] | set [V ]]
448448 ) -> MultiDict [K , V ]:
449449 if not isinstance (other , cabc .Mapping ):
450450 return NotImplemented
@@ -455,11 +455,12 @@ def __or__( # type: ignore[override]
455455
456456 def __ior__ ( # type: ignore[override]
457457 self ,
458- other : cabc .Mapping [K , V | cabc .Collection [V ]] | cabc .Iterable [tuple [K , V ]],
458+ other : (
459+ cabc .Mapping [K , V | list [V ] | tuple [V , ...] | set [V ]]
460+ | cabc .Iterable [tuple [K , V ]]
461+ ),
459462 ) -> te .Self :
460- if not isinstance (other , (cabc .Mapping , cabc .Iterable )) or isinstance (
461- other , str
462- ):
463+ if not isinstance (other , (cabc .Mapping , cabc .Iterable )):
463464 return NotImplemented
464465
465466 self .update (other )
@@ -600,7 +601,7 @@ def __init__(
600601 self ,
601602 mapping : (
602603 MultiDict [K , V ]
603- | cabc .Mapping [K , V | cabc . Collection [V ]]
604+ | cabc .Mapping [K , V | list [ V ] | tuple [ V , ...] | set [V ]]
604605 | cabc .Iterable [tuple [K , V ]]
605606 | None
606607 ) = None ,
@@ -744,7 +745,7 @@ def update( # type: ignore[override]
744745 self ,
745746 mapping : (
746747 MultiDict [K , V ]
747- | cabc .Mapping [K , V | cabc . Collection [V ]]
748+ | cabc .Mapping [K , V | list [ V ] | tuple [ V , ...] | set [V ]]
748749 | cabc .Iterable [tuple [K , V ]]
749750 ),
750751 ) -> None :
@@ -1009,7 +1010,7 @@ def __init__(
10091010 self ,
10101011 mapping : (
10111012 MultiDict [K , V ]
1012- | cabc .Mapping [K , V | cabc . Collection [V ]]
1013+ | cabc .Mapping [K , V | list [ V ] | tuple [ V , ...] | set [V ]]
10131014 | cabc .Iterable [tuple [K , V ]]
10141015 | None
10151016 ) = None ,
0 commit comments