summaryrefslogtreecommitdiff
path: root/requests/utils.py
diff options
context:
space:
mode:
authorRhys Elsmore <rhys@elsmore.id.au>2012-08-21 00:47:19 +1000
committerRhys Elsmore <rhys@elsmore.id.au>2012-08-21 00:47:19 +1000
commitf3159ed4f619124ab4b47c4e0f06f96daed762ce (patch)
treea866ac16360ee0a2c06c3610b6016fc471f7d02c /requests/utils.py
parent2e71497e10dd372040b5b44c75b99a07159e7ce4 (diff)
downloadpython-requests-f3159ed4f619124ab4b47c4e0f06f96daed762ce.tar.gz
Added in a link handler as per issue #711
Diffstat (limited to 'requests/utils.py')
-rw-r--r--requests/utils.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/requests/utils.py b/requests/utils.py
index 9b8ea21d..5b8c88d9 100644
--- a/requests/utils.py
+++ b/requests/utils.py
@@ -518,3 +518,36 @@ def default_user_agent():
'%s/%s' % (_implementation, _implementation_version),
'%s/%s' % (platform.system(), platform.release()),
])
+
+def parse_header_links(value):
+ """Return a dict of parsed link headers proxies.
+
+ i.e. Link: <http:/.../front.jpeg>; rel=front; type="image/jpeg",<http://.../back.jpeg>; rel=back;type="image/jpeg"
+
+ """
+
+ links = []
+
+ replace_chars = " '\""
+
+ for val in value.split(","):
+ try:
+ url, params = val.split(";", 1)
+ except ValueError:
+ url, params = val, ''
+
+ link = {}
+
+ link["url"] = url.strip("<> '\"")
+
+ for param in params.split(";"):
+ try:
+ key,value = param.split("=")
+ except ValueError:
+ break
+
+ link[key.strip(replace_chars)] = value.strip(replace_chars)
+
+ links.append(link)
+
+ return links