def METHOD_NAME(self, url: str) -> requests.Session:
    """Return a different customized requests.Session per schema+hostname combination.
    Raises:
        exceptions.DownloadError: When there is a problem parsing the url.
    """
    # Use a different requests.Session per schema+hostname combination, to
    # reuse connections while minimizing subtle security issues.
    parsed_url = parse.urlparse(url)
    if not parsed_url.scheme:
        raise exceptions.DownloadError(f"Failed to parse URL {url}")
    session_index = (parsed_url.scheme, parsed_url.hostname or "")
    session = self._sessions.get(session_index)
    if not session:
        session = requests.Session()
        self._sessions[session_index] = session
        ua = f"tuf/{tuf.__version__} {session.headers['User-Agent']}"
        session.headers["User-Agent"] = ua
        logger.debug("Made new session %s", session_index)
    else:
        logger.debug("Reusing session %s", session_index)
    return session