(cls, url)
return url, rev, user_pass
Parse the repository URL to use, and return the URL, revision,
        and auth info to use.

        Returns: (url, rev, (username, password)).
Parse the repository URL to use, and return the URL, revision,
        and auth info to use.
Parse the repository URL to use and return the URL revision and auth info to use .
def get_url_rev_and_auth(cls, url):
        # type: (str) -> Tuple[str, Optional[str], AuthInfo]
        """
        Parse the repository URL to use, and return the URL, revision,
        and auth info to use.

        Returns: (url, rev, (username, password)).
        """
        scheme, netloc, path, query, frag = urllib_parse.urlsplit(url)
        if '+' not in scheme:
            raise ValueError(
                "Sorry, {!r} is a malformed VCS url. "
                "The format is <vcs>+<protocol>://<url>, "
                "e.g. svn+http://myrepo/svn/MyApp#egg=MyApp".format(url)
            )
        # Remove the vcs prefix.
        scheme = scheme.split('+', 1)[1]
        netloc, user_pass = cls.get_netloc_and_auth(netloc, scheme)
        rev = None
        if '@' in path:
            path, rev = path.rsplit('@', 1)
        url = urllib_parse.urlunsplit((scheme, netloc, path, query, ''))
        return url, rev, user_pass
def get_url_rev_and_auth ( cls , url ) : # type: (str) -> Tuple[str, Optional[str], AuthInfo] scheme , netloc , path , query , frag = urllib_parse . urlsplit ( url ) if '+' not in scheme : raise ValueError ( "Sorry, {!r} is a malformed VCS url. " "The format is <vcs>+<protocol>://<url>, " "e.g. svn+http://myrepo/svn/MyApp#egg=MyApp" . format ( url ) ) # Remove the vcs prefix. scheme = scheme . split ( '+' , 1 ) [ 1 ] netloc , user_pass = cls . get_netloc_and_auth ( netloc , scheme ) rev = None if '@' in path : path , rev = path . rsplit ( '@' , 1 ) url = urllib_parse . urlunsplit ( ( scheme , netloc , path , query , '' ) ) return url , rev , user_pass