more advanced authentication mechanism
authorKenneth Reitz <me@kennethreitz.com>
Sun, 23 Oct 2011 15:33:03 +0000 (11:33 -0400)
committerKenneth Reitz <me@kennethreitz.com>
Sun, 23 Oct 2011 15:33:03 +0000 (11:33 -0400)
requests/auth.py

index 3a978b138a21a65350a27ffa3a24d4fe83584048..6825441caf27aaf94f1b840bebcb3276c2291d88 100644 (file)
@@ -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:])
+
+