22
22
def iter_multi_items (
23
23
mapping : (
24
24
MultiDict [K , V ]
25
- | cabc .Mapping [K , V | cabc . Collection [V ]]
25
+ | cabc .Mapping [K , V | list [ V ] | tuple [ V , ...] | set [V ]]
26
26
| cabc .Iterable [tuple [K , V ]]
27
27
),
28
28
) -> cabc .Iterator [tuple [K , V ]]:
@@ -33,11 +33,11 @@ def iter_multi_items(
33
33
yield from mapping .items (multi = True )
34
34
elif isinstance (mapping , cabc .Mapping ):
35
35
for key , value in mapping .items ():
36
- if isinstance (value , cabc . Collection ) and not isinstance ( value , str ):
36
+ if isinstance (value , ( list , tuple , set ) ):
37
37
for v in value :
38
38
yield key , v
39
39
else :
40
- yield key , value # type: ignore[misc]
40
+ yield key , value
41
41
else :
42
42
yield from mapping
43
43
@@ -182,7 +182,7 @@ def __init__(
182
182
self ,
183
183
mapping : (
184
184
MultiDict [K , V ]
185
- | cabc .Mapping [K , V | cabc . Collection [V ]]
185
+ | cabc .Mapping [K , V | list [ V ] | tuple [ V , ...] | set [V ]]
186
186
| cabc .Iterable [tuple [K , V ]]
187
187
| None
188
188
) = None ,
@@ -194,7 +194,7 @@ def __init__(
194
194
elif isinstance (mapping , cabc .Mapping ):
195
195
tmp = {}
196
196
for key , value in mapping .items ():
197
- if isinstance (value , cabc . Collection ) and not isinstance ( value , str ):
197
+ if isinstance (value , ( list , tuple , set ) ):
198
198
value = list (value )
199
199
200
200
if not value :
@@ -419,7 +419,7 @@ def update( # type: ignore[override]
419
419
self ,
420
420
mapping : (
421
421
MultiDict [K , V ]
422
- | cabc .Mapping [K , V | cabc . Collection [V ]]
422
+ | cabc .Mapping [K , V | list [ V ] | tuple [ V , ...] | set [V ]]
423
423
| cabc .Iterable [tuple [K , V ]]
424
424
),
425
425
) -> None :
@@ -444,7 +444,7 @@ def update( # type: ignore[override]
444
444
self .add (key , value )
445
445
446
446
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 ]]
448
448
) -> MultiDict [K , V ]:
449
449
if not isinstance (other , cabc .Mapping ):
450
450
return NotImplemented
@@ -455,11 +455,12 @@ def __or__( # type: ignore[override]
455
455
456
456
def __ior__ ( # type: ignore[override]
457
457
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
+ ),
459
462
) -> 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 )):
463
464
return NotImplemented
464
465
465
466
self .update (other )
@@ -600,7 +601,7 @@ def __init__(
600
601
self ,
601
602
mapping : (
602
603
MultiDict [K , V ]
603
- | cabc .Mapping [K , V | cabc . Collection [V ]]
604
+ | cabc .Mapping [K , V | list [ V ] | tuple [ V , ...] | set [V ]]
604
605
| cabc .Iterable [tuple [K , V ]]
605
606
| None
606
607
) = None ,
@@ -744,7 +745,7 @@ def update( # type: ignore[override]
744
745
self ,
745
746
mapping : (
746
747
MultiDict [K , V ]
747
- | cabc .Mapping [K , V | cabc . Collection [V ]]
748
+ | cabc .Mapping [K , V | list [ V ] | tuple [ V , ...] | set [V ]]
748
749
| cabc .Iterable [tuple [K , V ]]
749
750
),
750
751
) -> None :
@@ -1009,7 +1010,7 @@ def __init__(
1009
1010
self ,
1010
1011
mapping : (
1011
1012
MultiDict [K , V ]
1012
- | cabc .Mapping [K , V | cabc . Collection [V ]]
1013
+ | cabc .Mapping [K , V | list [ V ] | tuple [ V , ...] | set [V ]]
1013
1014
| cabc .Iterable [tuple [K , V ]]
1014
1015
| None
1015
1016
) = None ,
0 commit comments