From fd4f662871e388357f399ee3a2b3953892bfcbe5 Mon Sep 17 00:00:00 2001 From: Shadab Zafar Date: Tue, 6 Sep 2016 11:44:06 +0530 Subject: Refactor functions --- netlib/http/cookies.py | 61 +++++++++++++++++++++----------------------------- 1 file changed, 26 insertions(+), 35 deletions(-) diff --git a/netlib/http/cookies.py b/netlib/http/cookies.py index 774b1d14..73460a44 100644 --- a/netlib/http/cookies.py +++ b/netlib/http/cookies.py @@ -211,25 +211,27 @@ def _format_set_cookie_pairs(lst): ) -def _parse_set_cookie_pairs(s): +def parse_cookie_header(line): """ - For Set-Cookie, we support multiple cookies as described in RFC2109. - This function therefore returns a list of lists. + Parse a Cookie header value. + Returns a list of (lhs, rhs) tuples. """ pairs, off_ = _read_cookie_pairs(line) return pairs -def parse_set_cookie_headers(headers): - ret = [] - for header in headers: - cookies = parse_set_cookie_header(header) - if cookies: - for name, value, attrs in cookies: - ret.append((name, SetCookie(value, attrs))) - return ret +def parse_cookie_headers(cookie_headers): + cookie_list = [] + for header in cookie_headers: + cookie_list.extend(parse_cookie_header(header)[0]) + return cookie_list +def format_cookie_header(lst): + """ + Formats a Cookie header value. + """ + return _format_pairs(lst) def parse_set_cookie_header(line): @@ -240,9 +242,11 @@ def parse_set_cookie_header(line): Where attrs is a CookieAttrs dict of attributes. No attempt is made to parse attribute values - they are treated purely as strings. """ + cookie_pairs, off = _read_set_cookie_pairs(line) + cookies = [ (pairs[0][0], pairs[0][1], CookieAttrs(tuple(x) for x in pairs[1:])) - for pairs in _parse_set_cookie_pairs(line) if pairs + for pairs in cookie_pairs if pairs ] if cookies: @@ -251,6 +255,16 @@ def parse_set_cookie_header(line): return None +def parse_set_cookie_headers(headers): + ret = [] + for header in headers: + cookies = parse_set_cookie_header(header) + if cookies: + for name, value, attrs in cookies: + ret.append((name, SetCookie(value, attrs))) + return ret + + def format_set_cookie_header(name, value, attrs): """ Formats a Set-Cookie header value. @@ -262,29 +276,6 @@ def format_set_cookie_header(name, value, attrs): return _format_set_cookie_pairs(pairs) -def parse_cookie_headers(cookie_headers): - cookie_list = [] - for header in cookie_headers: - cookie_list.extend(parse_cookie_header(header)[0]) - return cookie_list - - -def parse_cookie_header(line): - """ - Parse a Cookie header value. - Returns a list of (lhs, rhs) tuples. - """ - pairs, off_ = _read_pairs(line) - return pairs - - -def format_cookie_header(lst): - """ - Formats a Cookie header value. - """ - return _format_pairs(lst) - - def refresh_set_cookie_header(c, delta): """ Args: -- cgit v1.2.3