def name_equality_check(setup_deps, pipfile_deps):
    """
    Checks that all names present in either dependency file are present
    in both dependency files

    Args:
        setup_deps (dict<str, list<tuple<str, str>>>):
            Dictionary from setup.py dependency name keys to a list of
            tuples as a value, with the tuples containing
            a comparision operator and a version specification.
        pipfile_deps (dict<str, list<tuple<str, str>>>):
            Dictionary from Pipfile dependency name keys to a list of
            tuples as a value, with the tuples containing
            a comparision operator and a version specification.
    Returns:
        bool:
            Whether the check passes - will always be true, otherwise the
            function will not reach this line.
    Raises:
        ValueError:
            If there are discrepancies between version names
    """
    in_setup_not_pipfile = set(setup_deps.keys()).difference(set(
        pipfile_deps.keys()))
    in_pipfile_not_setup = set(pipfile_deps.keys()).difference(set(
        setup_deps.keys()))
    if len(in_setup_not_pipfile) or len(in_pipfile_not_setup):
        err_msg = 'Dependency name mismatch!\n'
        if len(in_setup_not_pipfile):
            err_msg += 'Dependencies in setup.py but not in Pipfile: ' + str(
                in_setup_not_pipfile) + '\n'
        if len(in_pipfile_not_setup):
            err_msg += 'Dependencies in Pipfile but not in setup.py: ' + str(
                in_pipfile_not_setup) + '\n'
        raise ValueError(err_msg)
    return True
