From: Jian Li Date: Thu, 10 Jan 2013 05:29:24 +0000 (-0800) Subject: Make merge_kwargs case-insensitive when looking up keys. X-Git-Tag: v1.1.0^2^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=68edcd12b12818f773581397399ec73b055681d7;p=services%2Fpython-requests.git Make merge_kwargs case-insensitive when looking up keys. --- diff --git a/requests/sessions.py b/requests/sessions.py index 1507609..697ce2e 100644 --- a/requests/sessions.py +++ b/requests/sessions.py @@ -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():