From 68edcd12b12818f773581397399ec73b055681d7 Mon Sep 17 00:00:00 2001 From: Jian Li Date: Wed, 9 Jan 2013 21:29:24 -0800 Subject: [PATCH] Make merge_kwargs case-insensitive when looking up keys. --- requests/sessions.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) 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(): -- 2.7.4