File tree Expand file tree Collapse file tree 1 file changed +17
-8
lines changed Expand file tree Collapse file tree 1 file changed +17
-8
lines changed Original file line number Diff line number Diff line change @@ -208,22 +208,31 @@ cdef class MultiDict(_Base):
208
208
" ({} given)" .format(name, len (args)))
209
209
210
210
if args:
211
- if hasattr (args[0 ], ' items' ):
212
- for item in args[0 ].items():
213
- key, value = item
214
- key = self ._upper(key)
211
+ arg = args[0 ]
212
+ if isinstance (arg, _Base):
213
+ for item in (< _Base> arg)._items:
214
+ key = self ._upper(item[0 ])
215
+ value = item[1 ]
216
+ if do_add:
217
+ self ._add(key, value)
218
+ else :
219
+ self ._replace(key, value)
220
+ elif hasattr (arg, ' items' ):
221
+ for item in arg.items():
222
+ key = self ._upper(item[0 ])
223
+ value = item[1 ]
215
224
if do_add:
216
225
self ._add(key, value)
217
226
else :
218
227
self ._replace(key, value)
219
228
else :
220
- for arg in args[ 0 ] :
221
- if not len (arg ) == 2 :
229
+ for i in arg :
230
+ if not len (i ) == 2 :
222
231
raise TypeError (
223
232
" {} takes either dict or list of (key, value) "
224
233
" tuples" .format(name))
225
- key, value = arg
226
- key = self ._upper(key)
234
+ key = self ._upper(i[ 0 ])
235
+ value = i[ 1 ]
227
236
if do_add:
228
237
self ._add(key, value)
229
238
else :
You can’t perform that action at this time.
0 commit comments