src/streamlink/utils/url.py
def url_concat(base, *parts, **kwargs):
    """
    Join extra paths to a URL, does not join absolute paths
    :param base: the base URL
    :param parts: a list of the parts to join
    :param allow_fragments: include url fragments
    :return: the joined URL
    """
    allow_fragments = kwargs.get("allow_fragments", True)
    for part in parts:
        base = urljoin(base.rstrip("/") + "/", part.strip("/"), allow_fragments)
    return base
def url_concat(base, *parts, **kwargs):
    """
    Join extra paths to a URL, does not join absolute paths
    :param base: the base URL
    :param parts: a list of the parts to join
    :param allow_fragments: include url fragments
    :return: the joined URL
    """
    allow_fragments = kwargs.get("allow_fragments", True)
    for part in parts:
        base = urljoin(base.rstrip("/") + "/", part.strip("/"), allow_fragments)
    return base
def url_concat ( base , * parts , * * kwargs ) : allow_fragments = kwargs . get ( "allow_fragments" , True ) for part in parts : base = urljoin ( base . rstrip ( "/" ) + "/" , part . strip ( "/" ) , allow_fragments ) return base
Join extra paths to a URL, does not join absolute paths
    :param base: the base URL
    :param parts: a list of the parts to join
    :param allow_fragments: include url fragments
    :return: the joined URL
Join extra paths to a URL does not join absolute paths : param base : the base URL : param parts : a list of the parts to join : param allow_fragments : include url fragments : return : the joined URL