From a479c51465deae7be98ddba07ca2138fe6014d77 Mon Sep 17 00:00:00 2001 From: Shadab Zafar Date: Thu, 4 Aug 2016 14:16:35 +0530 Subject: Add method to group pairs by cookies --- netlib/http/cookies.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'netlib') diff --git a/netlib/http/cookies.py b/netlib/http/cookies.py index dd0af99c..389dbb26 100644 --- a/netlib/http/cookies.py +++ b/netlib/http/cookies.py @@ -26,6 +26,12 @@ variants. Serialization follows RFC6265. http://tools.ietf.org/html/rfc2965 """ +_cookie_params = set(( + 'expires', 'path', 'comment', 'max-age', + 'secure', 'httponly', 'version', +)) + + # TODO: Disallow LHS-only Cookie values @@ -287,3 +293,28 @@ def is_expired(cookie_attrs): pass return expires or max_age + + +def group_cookies(pairs): + """ + Converts a list of pairs to a (name, value, attrs) for each cookie. + """ + + if not pairs: + return [] + + cookie_list = [] + + # First pair is always a new cookie + name, value = pairs[0] + attrs = [] + + for k, v in pairs[1:]: + if k.lower() in _cookie_params: + attrs.append((k, v)) + else: + cookie_list.append((name, value, CookieAttrs(attrs))) + name, value, attrs = k, v, [] + + cookie_list.append((name, value, CookieAttrs(attrs))) + return cookie_list -- cgit v1.2.3