Merge pull request #1092 from jianlius/case-insensitive-update

Make merge_kwargs case-insensitive when looking up keys.
This commit is contained in:
Kenneth Reitz
2013-01-09 23:07:45 -08:00
+13 -2
View File
@@ -49,9 +49,20 @@ def merge_kwargs(local_kwarg, default_kwarg):
default_kwarg = from_key_val_list(default_kwarg)
local_kwarg = from_key_val_list(local_kwarg)
# Update new values.
# Update new values in a case-insensitive way
def get_original_key(original_keys, new_key):
"""
Finds the key from original_keys that case-insensitive matches new_key.
"""
for original_key in original_keys:
if key.lower() == original_key.lower():
return original_key
return new_key
kwargs = default_kwarg.copy()
kwargs.update(local_kwarg)
original_keys = kwargs.keys()
for key, value in local_kwarg.items():
kwargs[get_original_key(original_keys, key)] = value
# Remove keys that are set to None.
for (k, v) in local_kwarg.items():