header expanding
authorKenneth Reitz <me@kennethreitz.com>
Sun, 28 Aug 2011 06:40:19 +0000 (02:40 -0400)
committerKenneth Reitz <me@kennethreitz.com>
Sun, 28 Aug 2011 06:40:19 +0000 (02:40 -0400)
requests/utils.py

index 2b55a164f438ff87d4568cfbff8a916a02bb7b2a..89387576fea996b37914a2cede6eb850e3b1edc8 100644 (file)
@@ -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.