Make merge_kwargs case-insensitive when looking up keys.

This commit is contained in:
Jian Li
2013-01-09 21:29:24 -08:00
parent b4505284f2
commit 68edcd12b1
+12 -2
View File
@@ -49,9 +49,19 @@ 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)
for key, value in local_kwarg.items():
kwargs[get_original_key(kwargs.keys(), key)] = value
# Remove keys that are set to None.
for (k, v) in local_kwarg.items():