Beispiel #1
0
 def parse_credentials(self, netloc):
     if "@" in netloc:
         userinfo = netloc.rsplit("@", 1)[0]
         if ":" in userinfo:
             user, pwd = userinfo.split(":", 1)
             return (urllib_unquote(user), urllib_unquote(pwd))
         return urllib_unquote(userinfo), None
     return None, None
Beispiel #2
0
 def parse_credentials(self, netloc):
     if "@" in netloc:
         userinfo = netloc.rsplit("@", 1)[0]
         if ":" in userinfo:
             user, pwd = userinfo.split(":", 1)
             return (urllib_unquote(user), urllib_unquote(pwd))
         return urllib_unquote(userinfo), None
     return None, None
def split_auth_from_netloc(netloc):
    """
    Parse out and remove the auth information from a netloc.

    Returns: (netloc, (username, password)).
    """
    if '@' not in netloc:
        return netloc, (None, None)

    # Split from the right because that's how urllib.parse.urlsplit()
    # behaves if more than one @ is present (which can be checked using
    # the password attribute of urlsplit()'s return value).
    auth, netloc = netloc.rsplit('@', 1)
    if ':' in auth:
        # Split from the left because that's how urllib.parse.urlsplit()
        # behaves if more than one : is present (which again can be checked
        # using the password attribute of the return value)
        user_pass = auth.split(':', 1)
    else:
        user_pass = auth, None

    user_pass = tuple(None if x is None else urllib_unquote(x)
                      for x in user_pass)

    return netloc, user_pass