From b97b4439c0ab264d36a2fbc1af07c0631bca2fbe Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Sun, 28 Aug 2011 02:40:19 -0400 Subject: [PATCH] header expanding --- requests/utils.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/requests/utils.py b/requests/utils.py index 2b55a16..8938757 100644 --- a/requests/utils.py +++ b/requests/utils.py @@ -15,6 +15,36 @@ import re import zlib +def header_expand(header_dict): + """Returns an HTTP Header value string from a dictionary. + + Example expansion:: + + # Accept: text/x-dvi; q=.8; mxb=100000; mxt=5.0, text/x-c + {'text/x-dvi': {'q': '.8', 'mxb': '100000', 'mxt': '5.0'}, 'text/x-c': {}} + """ + + collector = [] + + for i, (value, params) in enumerate(header_dict.items()): + _params = [] + + for p_k, p_v in params.items(): + + _params.append('{k}={v}'.format(k=p_k, v=p_v)) + + if len(params): + collector.append(value) + collector.append('; ') + collector.append('; '.join(_params)) + + if not len(header_dict) == i+1: + collector.append(', ') + + return ''.join(collector) + + + def dict_from_cookiejar(cj): """Returns a key/value dictionary from a CookieJar. -- 2.34.1