def _requires_launchpad_login(scheme, netloc, path, query, fragment):
    """Does the URL require a Launchpad login in order to be reached?

    The URL is specified by its parsed components, as returned from
    urlsplit.
    """
    return scheme in ('bzr+ssh', 'sftp') and (netloc.endswith(
        'launchpad.net') or netloc.endswith('launchpad.dev'))
