def METHOD_NAME(pipestr, renderers, blacklist, whitelist):
    """
    Check that all renderers specified in the pipe string are available.
    If so, return the list of render functions in the pipe as
    (render_func, arg_str) tuples; otherwise return [].
    """
    if pipestr is None:
        return []
    parts = [r.strip() for r in pipestr.split("|")]
    # Note: currently, | is not allowed anywhere in the shebang line except
    #       as pipes between renderers.
    results = []
    try:
        if parts[0] == pipestr and pipestr in OLD_STYLE_RENDERERS:
            parts = OLD_STYLE_RENDERERS[pipestr].split("|")
        for part in parts:
            name, argline = (part + " ").split(" ", 1)
            if whitelist and name not in whitelist or blacklist and name in blacklist:
                log.warning(
                    'The renderer "%s" is disallowed by configuration and '
                    "will be skipped.",
                    name,
                )
                continue
            results.append((renderers[name], argline.strip()))
        return results
    except KeyError:
        log.error('The renderer "%s" is not available', pipestr)
        return []