From 4892a305d9cd658287b3320d18c60886b14b5b48 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Sun, 23 Oct 2011 11:33:03 -0400 Subject: [PATCH] more advanced authentication mechanism --- requests/auth.py | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/requests/auth.py b/requests/auth.py index 3a978b1..6825441 100644 --- a/requests/auth.py +++ b/requests/auth.py @@ -28,4 +28,32 @@ def http_digest(r, username, password): Arguments should be considered non-positional. """ - r.headers \ No newline at end of file + r.headers + + +def dispatch(t): + """Given an auth tuple, return an expanded version.""" + + if not t: + return t + else: + t = list(t) + + # Make sure they're passing in something. + assert len(t) <= 2 + + # If only two items are passed in, assume HTTPBasic. + if (len(t) == 2): + t.insert(0, 'basic') + + # Allow built-in string referenced auths. + if isinstance(t[0], basestring): + if t[0] in ('basic', 'forced_basic'): + t[0] = http_basic + elif t[0] in ('digest',): + t[0] = http_digest + + # Return a custom callable. + return (t[0], t[1:]) + + -- 2.34.1